Настройки запуска iOS -> Схема URL ограничений - PullRequest
86 голосов
/ 23 ноября 2011

Я недавно обнаружил потрясающую схему пользовательских настроек iOS5 , которую можно подробно объяснить на этом замечательном сайте .

Я нашел этоработать, направляя пользователя в приложение «Настройки» из моего приложения:

[[UIApplication sharedApplication] openURL:
       [NSURL URLWithString:@"prefs:root=General"]];

Но, похоже, не удается напрямую направить на путь Ограничения через параметр path:

[[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];

Кто-нибудь нашел документацию по этому или смог сделать эту работу?

Любое понимание будет с благодарностью.Я пытаюсь убедить пользователя включить встроенные покупки, и я не хочу, чтобы пользователь вручную нажимал на Ограничения (не очень очевидно).

Ответы [ 13 ]

2 голосов
/ 25 января 2017

Работает нормально для настроек уведомлений приложения на IOS 10 (проверено)

if(&UIApplicationOpenSettingsURLString != nil){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
2 голосов
/ 24 ноября 2015

Вот еще кое-что, что я нашел:

  1. После того, как я определил схему URL "prefs", "prefs: root = Safari & path = ContentBlockers" работаетна симуляторе (iOS 9.1 английский ), но не работает на симуляторе (упрощенный китайский) .Это просто переход на Safari, но не блокировщики контента.Если ваше приложение интернациональное, будьте осторожны.
    Обновление: не знаю почему, теперь я больше не могу переходить на ContentBlockers, тот же код, та же версия, теперь не работает.: (

  2. На реальных устройствах (у меня iPhone 6S и iPad mini 2), «Safari» должен быть «SAFARI» , «Safari» не работает на реальныхУстройство «SAFARI» сейчас работает на симуляторе:

    #if arch(i386) || arch(x86_64)
        // Simulator
        let url = NSURL(string: "prefs:root=Safari")!
    #else
        // Device
        let url = NSURL(string: "prefs:root=SAFARI")!
    #endif
    
    if UIApplication.sharedApplication().canOpenURL(url) {
        UIApplication.sharedApplication().openURL(url)
    }
    
  3. Пока что не обнаружил никаких отличий между iPhone и iPad.

0 голосов
/ 05 августа 2016

Я обновляю одну новость здесь. Использование только «prefs:» НЕ отклоняется Apple, я протестировал его и проверил одобрено в магазине приложений (в августе 2016 года). ТНХ.

...