我有一个 watch 套件应用程序,它试图从 Apple watch 的界面 Controller 请求 HealthKit 许可,但是当我运行该应用程序时,我从未被要求获得许可,并且该应用程序默认没有健康套件许可。如何让苹果请求 HealthKit 权限?
最佳答案
您可以从 watchOS 应用请求访问健康工具包,但用户需要在其 iPhone 上接受请求。为此,您需要像往常一样在 watchOS 应用程序上请求访问健康工具包:
var healthKitTypesToRead = Set<HKObjectType>()
// TODO: add your read types here
var healthKitTypesToWrite = Set<HKSampleType>()
// TODO: add your write types here
healthStore.requestAuthorizationToShareTypes(healthKitTypesToWrite, readTypes: healthKitTypesToRead) { (success, error) -> Void in
// TODO: Handle success or failure
}
然后您需要将其添加到您的 iOS 应用中的 AppDelegate 中:
func applicationShouldRequestHealthAuthorization(application: UIApplication) {
let healthStore = HKHealthStore()
healthStore.handleAuthorizationForExtensionWithCompletion { (success, error) -> Void in
//...
}
}
现在,当您向 watch 上的用户请求健康工具包权限时,他们会在 watch 上看到一个权限对话框,告诉他们接受或拒绝其 iPhone 上的权限。当他们打开他们的 iPhone 时,您的应用程序的健康工具包权限对话框将等待。一旦他们在 iPhone 上设置了首选项,您的 requestAuthorizationToShareTypes 完成处理程序将在您的 Apple Watch 上调用。
关于ios - 在 Apple Watch 上从 HealthKit 请求数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35972459/