如何更新 UI 并询问 Healthkit 的权限
Posted
技术标签:
【中文标题】如何更新 UI 并询问 Healthkit 的权限【英文标题】:How to update UI and ask Permission for Healthkit 【发布时间】:2020-10-08 12:24:04 【问题描述】:现在我正在开发一个与 ios 中的 Healthkit 相关的应用程序。我面临一个问题。 在第一个视图控制器 HomeVC 中,当我尝试请求 healthkit 权限时,它工作正常,并显示系统屏幕以获取权限。
但同时,我必须在 viewcontoller 上设置 UI 元素的布局并询问权限,所以我在 viewDidload 方法中添加了一些代码来更新 UI。在那种情况下,当我请求权限时,权限屏幕不显示并显示白屏,并且在控制台中出现以下错误。
Error Domain=com.apple.healthkit Code=100 "授权会话计时 out" UserInfo=NSLocalizedDescription=授权会话超时
有没有办法解决这个问题?
【问题讨论】:
【参考方案1】:添加到 info.plist 文件中。添加以下内容 信息属性列表 -> 隐私 - 健康更新使用说明 说明 -> 应用想要访问您的健康包,为您提供更好的健身效果
func authorizeHealthKit()
let healthKitTypesToRead : Set<HKObjectType> = [
HKObjectType.characteristicType(forIdentifier: HKCharacteristicTypeIdentifier.dateOfBirth)!,
HKObjectType.characteristicType(forIdentifier: HKCharacteristicTypeIdentifier.bloodType)!,
HKObjectType.quantityType(forIdentifier: .stepCount)!,
HKObjectType.quantityType(forIdentifier: .activeEnergyBurned)!
]
let healthKitTypes: Set = [ HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)!, HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.activeEnergyBurned)! ]
let healthKitTypesToWrite : Set<HKSampleType> = []
if !HKHealthStore.isHealthDataAvailable()
print("error")
return
self.healthKitStore.requestAuthorization(toShare: healthKitTypesToWrite, read: healthKitTypesToRead) (success, error) in
print("request authorized succesfully")
【讨论】:
以上是关于如何更新 UI 并询问 Healthkit 的权限的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 3 中获取和更新 Healthkit 中的高度?