从另一个应用程序打开 HealthKit 应用程序

Posted

技术标签:

【中文标题】从另一个应用程序打开 HealthKit 应用程序【英文标题】:Open HealthKit App from another app 【发布时间】:2014-08-12 08:26:45 【问题描述】:

我想构建一个将数据上传到 HealthKit 的健身应用。有没有办法从另一个应用程序打开/导航到 HealthKit?

【问题讨论】:

【参考方案1】:

ios 10 上,健康应用 URL 方案为 x-apple-health。您可以通过调用在您自己的应用中打开它:

目标-C:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"x-apple-health://"]];

斯威夫特:

UIApplication.shared.open(URL(string: "x-apple-health://")!)

见Open Health app using url scheme | Apple Developer Forums。

【讨论】:

仅适用于 iOS 10+。我认为 iOS 8 或 9 上的 Health 应用没有注册的 URL 架构。 @bickster 没错,它似乎不适用于 iOS 8 或 9。我已经更新了我的答案。谢谢! 有谁知道如何打开特殊视图?比如步数或体重? 这没有正式记录或支持,并且可能随时更改。我不建议你使用这个。【参考方案2】:

iOS 不提供用于启动其他应用程序的通用 API,并且 Health 应用程序需要支持 URL 方案才能从您自己的应用程序中启动它。见Launch an app from within another (iPhone)。

【讨论】:

【参考方案3】:

Swift 5“更安全的方式”

func openUrl(urlString: String) 
    guard let url = URL(string: urlString) else 
        return
    

    if UIApplication.shared.canOpenURL(url) 
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    

用法:

openUrl(urlString: "x-apple-health://")

【讨论】:

以上是关于从另一个应用程序打开 HealthKit 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在后台访问 healthkit 锻炼

iOS 从 HealthKit 读取数据

iOS 从 HealthKit 读取数据

HealthKit(打开可选时意外发现 nil)

如果您使用的是 Apple Watch,是不是需要先打开 Health App 同步数据,然后再打开自己的 healthkit 应用程序获取最新数据?

应用程序在后台时如何查询 HealthKit (HKWorkout) 更新?