Ustawienia uruchamiania systemu iOS - > Restrictions URL Scheme

Niedawno odkryłem niesamowity iOS5 custom Settings URL Scheme, który można szczegółowo wyjaśnić na tej wspaniałej stronie {7]}.

Jeśli nie masz dostępu do plików cookies, możesz je zmienić w swojej przeglądarce.]}
[[UIApplication sharedApplication] openURL:
       [NSURL URLWithString:@"prefs:root=General"]];

Ale wydaje się, że nie można kierować bezpośrednio do ograniczeń ścieżka poprzez path parametr:

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

Czy ktoś znalazł dokumentację na ten temat lub był w stanie to zrobić?

Każdy wgląd byłby bardzo doceniam to. Próbuję wziąć użytkownika, aby włączyć zakupy w aplikacji, i wolałbym nie mieć użytkownika ręcznie kliknąć na ograniczenia (nie bardzo oczywiste).

Author: Mark, 2011-11-23

13 answers

AS @ Nix Wang's ANSWER THIS IS NOT WORK IN IOS 10


Ostrzeżenie: ta metoda nie będzie działać na urządzeniach z systemem iOS 5.1 i nowszym - Patrz komentarz Hlung poniżej.

Jest możliwe, że komponent path ma inną nazwę niż rzeczywista sekcja, ale jest również możliwe, że nie możesz obecnie uzyskać dostępu do tej sekcji bezpośrednio z adresu URL. Znalazłem listę możliwych adresów URL i ograniczeń nie ma na nim, może po prostu nie dowiedziałam się jeszcze.

Lista obecnie znanych adresów URL w aplikacji Ustawienia:

  • prefs: root=General&path=About
  • prefs: root=General&path=ACCESSIBILITY
  • prefs: root=AIRPLANE_MODE
  • prefs: root=General&path=AUTOLOCK
  • prefs: root=General&path=USAGE / CELLULAR_USAGE
  • prefs: root=jasność
  • prefs: root=General&path=Bluetooth
  • prefs: root=General&path=DATE_AND_TIME
  • prefs: root=FACETIME
  • prefs: root=General
  • prefs: root=General&path=Keyboard
  • prefs: root=CASTLE
  • prefs: root=CASTLE&path=STORAGE_AND_BACKUP
  • prefs: root=General&path=INTERNATIONAL
  • prefs: root=LOCATION_SERVICES
  • prefs: root=ACCOUNT_SETTINGS
  • prefs: root=muzyka
  • prefs: root=MUSIC&path=EQ
  • prefs: root=MUSIC&path=VolumeLimit
  • prefs: root=General&path=Network
  • prefs: root=NIKE_PLUS_IPOD
  • prefs: root=NOTES
  • prefs: root=NOTIFICATIONS_ID
  • prefs: root=Phone
  • prefs: root=Photos
  • prefs: root=General&path=ManagedConfigurationList
  • prefs: root=General&path=Reset
  • prefs: root=Sounds&path=Ringtone
  • prefs: root=Safari
  • prefs: root=General&path=Assistant
  • prefs: root=Sounds
  • prefs: root=General&path=SOFTWARE_UPDATE_LINK
  • prefs: root=STORE
  • prefs: root=TWITTER
  • prefs: root=General&path=USAGE
  • prefs: root=VIDEO
  • W przeciwieństwie do vpn, vpn nie jest w pełni kompatybilny z VPN.]}
  • prefs: root=Wallpaper
  • prefs: root=WIFI
  • prefs: root=INTERNET_TETHERING
 140
Author: Henri Normak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-26 06:09:07

Od wersji iOS8 możesz otworzyć wbudowaną aplikację Ustawień za pomocą:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
   [[UIApplication sharedApplication] openURL:url];
}

Rzeczywisty ciąg URL to @"app-settings:". Próbowałem dodać różne sekcje do ciągu znaków ("Bluetooth", "ogólne", itp.), ale wydaje się, że działa tylko linkowanie do głównego ekranu ustawień. Napisz odpowiedź, jeśli okaże się inaczej.

 47
Author: Jason Moore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-30 19:27:47

Jeśli dodasz schemat adresu URL prefs do aplikacji na iOS, pozwoli Ci to korzystać ze wszystkich tych schematów, które mogliśmy w iOS 5. Przetestowałem go na iOS 9, ale myślę, że będzie działać również na starszych wersjach.

 42
Author: Pedro Tôrres,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-22 10:20:30

Aktualizacja:

prefs: nie będzie działać od iOS 10.

 30
Author: Nix Wang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-08 09:08:56

Tak, widziałem to (i wiele innych), nawet zaimplementowałem to w aplikacji testowej. Naprawdę trzeba uzyskać ostateczne słowo od Apple, ale opinia konsensusu Społeczności jest Apple zakazał go w 5.1 po tym, jak został publicznie "odkryty/opublikowany", więc aplikacje zawierające go nie będą akceptowane.

08/01/12 aktualizacja: zapytał Apple za pośrednictwem mojego konta dewelopera, czy istnieje sposób programowego uruchamiania okna dialogowego ustawień WiFi. Oto odpowiedź:

" Nasi inżynierowie rozpatrzyli wniosek i stwierdzili, że nie ma obsługiwanego sposobu osiągnięcia pożądanej funkcjonalności, biorąc pod uwagę obecnie konfiguracje systemu wysyłki."

 21
Author: Dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-29 16:06:24

W iOS 9 znowu działa!

Aby otworzyć Settings > General > Keyboard , używam:

prefs:root=General&path=Keyboard

Ponadto można przejść dalej do klawiatury :

prefs:root=General&path=Keyboard/KEYBOARDS
 18
Author: Mikhail Gasanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-29 08:36:18

Chciałem otworzyć menu Bluetooth w aplikacji Ustawienia i powyższa ścieżka (prefs:root=General&path=Bluetooth) nie działa dla mnie. To, co skończyło się dla mnie pracą, to

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)

Upewnij się, że najpierw zdefiniowano schemat URL prefs.

 7
Author: Mahesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-19 13:14:44

Rozwiązanie dla iOS10. Działa dobrze.

NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
 5
Author: pararmswar Developers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-28 19:42:06

Od iOS10 możesz użyć

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!) 

Aby otworzyć Ustawienia Ogólne.

Możesz również dodać znane adresy URL (możesz je zobaczyć w najbardziej upvoted odpowiedzi) do niego, aby otworzyć określone ustawienia. Na przykład poniżej otwiera touchID i hasło.

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
 4
Author: mkeremkeskin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-06 14:00:14

Oto coś jeszcze znalazłem:

  1. Po zdefiniowaniu schematu URL" prefs""prefs:root=Safari&path=ContentBlockers" działa na Simulatorze (iOS 9.1 English), ale nie działa na Simulatorze (Chiński Uproszczony). Po prostu przeskakuje do Safari, ale nie blokuje treści. Jeśli Twoja aplikacja jest międzynarodowa, bądź ostrożny.
    Update: Nie wiem dlaczego, teraz nie mogę już skakać do Contentblockerów, ten sam kod, ta sama wersja, teraz nie działa. :(

  2. Na prawdziwych devcies (Mój to iPhone 6s i iPad mini 2), "Safari" powinno być "SAFARI" , "Safari" nie działa na prawdziwym urządzeniu, "SAFARI" działa teraz na symulatorze:
    #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. Do tej pory nie znaleziono żadnych różnic między iPhone ' em a iPadem.

 2
Author: Kaiyuan Xu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-07 17:28:43

Działa dobrze dla ustawień powiadomień aplikacji na IOS 10 (testowane)

if(&UIApplicationOpenSettingsURLString != nil){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
 2
Author: Mrsantateam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-25 12:31:52

IOS 10

Użyj app-prefs:

App-prefs:root=MOBILE_DATA_SETTINGS_ID

Zobacz gist

 2
Author: Alex Hedley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-08 08:14:30

Aktualizuję jedną wiadomość tutaj. Używanie tylko "prefs:" nie jest odrzucane przez Apple, Przetestowałem go i sprawdziłem w app store(w sierpniu 2016). thx.

 0
Author: Maggie Phillips,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-05 06:17:14