我在商店中有一个WatchOS应用程序,该应用程序在手表中使用了一些健身传感器(3系列及更高版本)。显然,一些用户对如何打开“隐私”设置以允许访问传感器感到困惑。因此,我想在配对的iPhone应用程序中提供提示和按钮,以使用户进入手机和Apple“ Watch”应用程序的“设置/隐私”视图。
iPhone部分很简单,但解决方案不完整,因为最近的iOS版本拒绝访问顶层以下的“设置”视图。举例来说:在基本设置URL中添加“ root = Privacy”现在无效,并且不起作用。至少用户会进入“设置”页面。
@IBAction func phonePrivTap(_ sender: Any) {
// https://stackoverflow.com/questions/52301580/how-to-programmatically-open-settings-privacy-location-services-in-ios-11
if let url = URL(string:UIApplication.openSettingsURLString) {
UIApplication.shared.open(url)
}
}
打开Watch App进入“隐私/健身和运动”设置比较麻烦。使用“ itms-watch://”的标准URL方案打开Watch,并立即打开watch Store视图。
@IBAction func watchPrivTap(_ sender: Any) {
var WatchStr = "itms-watch://"
if let url = URL(string: WatchStr ) {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
}
深入研究以创建自定义URL方案,似乎Watch标识符实际上是“ com.apple.Bridge”,但是将其添加到pList并没有任何作用。 Watch App无法运行。也许它没有识别直接运行请求的代码?代码失败:
@IBAction func watchPrivTap(_ sender: Any) {
let WatchStr = "watch://"
if let url = URL(string: WatchStr ) {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
}
并在pList中:
identifier: com.apple.Bridge
URL Scheme: watch
运行自定义URL不会产生任何错误消息。关于如何将“监视”打开为“隐私”有什么想法?