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).
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
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.
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.
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.
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."
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
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
.
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];
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")!)
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:
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. :(-
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) }
Do tej pory nie znaleziono żadnych różnic między iPhone ' em a iPadem.
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]];
}
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
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.
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