如何在iOS 12中以编程方式打开Watch App

时间:2018-11-29 18:40:27

标签: watchkit url-scheme privacy ios12

我在商店中有一个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不会产生任何错误消息。关于如何将“监视”打开为“隐私”有什么想法?

0 个答案:

没有答案