2014-09-23 19 views
14

Wiem, że to pytanie było zadawane przez wiele osób. Odpowiedzi mówią, że nie jest to dostępne w Xcode> 5.x. ale widziałem aplikacje, które mogą z tego korzystać (Przejdź do Ustawień) (iOS7). W każdym razie to zrobić? czy jest dostępny w Xcode 6? facebook może wykryć zarówno dane komórkowe, jak i wifi.Schemat adresu URL "Ustawienia otwarte" ios

enter image description hereenter image description here

+2

te są oba komunikaty systemowe, a nie aplikacji wiadomości. Od wersji iOS 8 możesz uruchomić własną stronę ustawień swojej aplikacji. – rmaddy

+0

Czy istnieje sposób na pokazanie tych komunikatów systemowych? A w systemie iOS8 mogę włączyć dane wifi/komórkowe urządzenia? – MaappeaL

Odpowiedz

64

Jako iOS 8, to jest możliwe, aby uruchomić aplikację Ustawienia, które bezpośrednio otwiera swoją prywatność sekcję aplikacji w ten sposób:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 

w Swift:

if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString) { 
    UIApplication.sharedApplication().openURL(settingsURL) 
} 

W Swift 3.0:

if let settingsURL = URL(string: UIApplicationOpenSettingsURLString + Bundle.main.bundleIdentifier!) { 
    UIApplication.shared.openURL(settingsURL as URL) 
} 
+4

Czy ktoś wie, jak otworzyć aplikację Ustawienia, a nie tylko indywidualne ustawienia? Facebook to robi. – Pei

+7

@Pei Określ identyfikator pakietu aplikacji w schemacie URL: '[[UIApplication sharedApplication] openURL: [NSURL URLWithString: [NSString stringWithFormat: @"% @ BundleID ", UIApplicationOpenSettingsURLString]]];' –

+0

To jest dla kodu szybkiego tylko w przypadku, gdy chcesz: straż niech bundleIdentifier: String = NSBundle.mainBundle() bundleIdentifier else {return} jeśli niech url = bibliotece NSURL. (string: UIApplicationOpenSettingsURLString + bundleIdentifier) ​​{. UIApplication.sharedApplication() OpenURL (URL) } – ryutamaki

2

Wpisy dotyczące twoich screenach są alarmy systemowe. Pierwsza pojawia się, gdy aplikacja chce korzystać z Internetu i ma zablokowane dane komórkowe do aplikacji (a Wi-Fi nie jest połączone). Drugi występuje, gdy aplikacja chce korzystać z usług lokalizacyjnych, a wyłączyłeś Wi-Fi. Nie jest możliwe sterowanie wyświetlaniem tych alertów s.

W systemie iOS 8 (Xcode 6) istnieje możliwość otwierania ustawień bezpośrednio z poziomu aplikacji. Proszę przeczytać to tematy: How to open Settings programmatically like in Facebook app?

Opening the Settings app from another app

+0

jak mogę pokazać pierwszy? na przykład, jeśli spróbuję otworzyć adres URL z mojej przeglądarki internetowej, oznacza to, że muszę korzystać z Internetu, czy alert zostanie wyświetlony? Czy możesz podać mi przykład ? – MaappeaL

+0

Zamknij aplikację. Wyłącz Wi-Fi. Przejdź do ustawień-> komórkowe -> w sekcji "Użyj komórkowej transmisji danych dla:" znajdź swoją aplikację i wyłącz ją. Otwórz swoją aplikację. –

+0

jeśli pobierzesz aplikację ze sklepu Apple, a aplikacja jest wymagana do korzystania z Internetu, czy jest automatycznie dodawana do listy aplikacji korzystających z komórkowej transmisji danych? Moja aplikacja nie pojawia się na liście, czy to normalne, ponieważ jest to tylko test? – MaappeaL

8

1.- Dodaj Rodzaje URL enter image description here

2.- Zastosowanie:

Objective - C

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

Swift

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

3.- Inne ścieżka znaleźć w tej odpowiedzi: iOS Launching Settings -> Restrictions URL Scheme

+0

To naprawdę działa. –

+3

Złamany w iOS 10. Jakiekolwiek obejścia? – shim

+0

Poszukiwany łamacz w iOS 10, czy znaleźliście rozwiązanie dla tego samego – iAviatorJose

0

Nie jest to możliwe już w iOS 11, możemy po prostu otworzyć Ustawienia takie jak:

if let url = URL(string:UIApplicationOpenSettingsURLString) { 
    if UIApplication.shared.canOpenURL(url) { 
    let url = UIApplication.shared.open(url, options: [:], completionHandler: nil) 
    } 
}