Как программно открыть приложение Watch в iOS 12 - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть приложение WatchOS в магазине, которое использует некоторые Фитнес-сенсоры в часах (серии 3 и выше).Видимо, некоторые пользователи не понимают, как включить настройки конфиденциальности, чтобы разрешить доступ к датчикам.Поэтому я хочу предоставить подсказку и кнопки в сопряженном приложении iPhone для перехода пользователя к представлениям «Настройки» / «Конфиденциальность» как телефона, так и приложения Apple «Watch».

Часть для iPhone проста, нонеполное решение, так как последние версии iOS запрещают доступ к просмотру в представлениях настроек ниже верхнего уровня.Для этого: добавление в URL базовых настроек с произнесением: «root = Privacy» теперь недопустимо и не работает.По крайней мере, пользователь попадает на страницу настроек.

    @IBAction func phonePrivTap(_ sender: Any) {
//        /10853633/kak-programmno-otkryt-nastroiki-konfidentsialnost-sluzhby-opredeleniya-mestopolozheniya-v-ios-11

        if let url = URL(string:UIApplication.openSettingsURLString) {
            UIApplication.shared.open(url)
        }
    }

Открытие приложения Watch для доступа к настройкам конфиденциальности, фитнеса и движения более проблематично.Используя стандартную URL-схему «itms-watch: //», открывается Watch и сразу же открывается представление Store Watch.

@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 не запускается.Может быть, в нем нет кода для распознавания запроса на прямое выполнение?Код ошибки:

    @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 ничего не делает, сообщение об ошибке не генерируется.Есть мысли о том, как открыть «Часы» в «Приватность»?

...