我想构建一个健身应用程序,将数据上传到 HealthKit。有没有办法从另一个应用程序打开/导航到 HealthKit?
在 iOS 10 上,健康应用程序 URL 方案为
x-apple-health
。您可以通过调用以下命令从您自己的应用程序中打开它:
目标-C:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"x-apple-health://"]];
斯威夫特:
UIApplication.shared.open(URL(string: "x-apple-health://")!)
iOS 不提供用于启动其他应用程序的通用 API,并且 Health 应用程序需要支持 URL 方案,以便您从自己的应用程序启动它。请参阅从另一个 (iPhone) 中启动应用程序。
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://")
您可以在
Settings>Health>Source
或更高版本中打开 iOS 12
路径。您可以在列表中找到MyApp
并更改访问权限。您可以按照以下步骤操作:
extension UIApplication {
func openAppleHealthSources() {
guard let url = URL(string: "App-prefs:HEALTH&path=SOURCES"),
self.canOpenURL(url) else {
return
}
self.open(url)
}
}
用途:
UIApplication.shared.openAppleHealthSources()
但这可能会导致您的应用程序在审核过程中被拒绝......
您的应用程序使用“prefs:root=”非公共 URL 方案,这是一个私有实体。 App Store 不允许使用非公共 API,因为如果这些 API 发生更改,可能会导致糟糕的用户体验。在以后提交此应用程序时继续使用或隐藏非公开 API 可能会导致您的 Apple 开发者帐户被终止,并从 App Store 中删除所有关联的应用程序。