ios - 在 Apple Watch 上从 HealthKit 请求数据

标签 ios watchkit healthkit

我有一个 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/

相关文章:

ios - os/c-api/il2cpp-config-platforms.h' 找不到文件

ios - 在 WKWebview 中的 Safari 中打开新选项卡

ios - 子类化 UIActionSheet

objective-c - 获取 HealthKit 中每个日期的总步数

ios - 核心数据中的谓词和组合过滤器?

ios - Watchkit 和 WCSession

watchkit - 让 Apple Watch 保持唤醒状态

ios - 保持核心数据与多个 watch 同步

ios - 设置 HKAnchoredObjectQuery 以便我只接收自上次查询以来的更新?

ios - 仅通过 Apple Watch 请求 HealthKit 访问?