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