2013-03-28 16 views
18

Wiem, że jest wiele pytań związanych z tym.iPhone- Otwórz ustawienia z mojej aplikacji iOS 6

1) is it possible to open Settings App using openURL?

2) Opening the Settings app from another app

3) iOS Launching Settings -> Restrictions URL Scheme

Śledzę te pytania odniesienie ale to nie rozwiązuje mojego zapytania. Wiem, że używając metody openURL, możesz otworzyć Ustawienia, ale to było ważne tylko dla iOS 5.0 - 5.0.1. W systemie iOS 5.1 został wycofany.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]]; 

Wciąż byłem widząc wiele aplikacji, które oparte głównie lokalizacji prosi o zgodę użytkownika, aby włączyć usługi lokalizacyjne i odbywa się bezpośrednio do usług lokalizacyjnych pod Ustawienia -> Prywatność. Zrzut ekranu aplikacji zainstalowanej na urządzeniu z systemem iOS 6.1 poniżej pokazuje, że stuknięcie w Ustawienia przenosi użytkownika bezpośrednio do usługi Usługi lokalizacyjne.

Próbowałem uruchomić kod w mojej aplikacji, ale to nie działa (chcę zabrać użytkownika do strony Ustawienia, aby umożliwić mojej aplikacji dostęp do informacji kontaktowych bezpośrednio z mojej aplikacji). Jeśli Apple ma wyłączone schematy adresów URL, to dlaczego wiele Aplikacji wciąż go używa?

enter image description here

+6

The 'preferencje: //' nie jest przestarzała nigdy nie było o wydany fikcyjnie. Oznacza to, że Apple może po prostu usunąć wsparcie dla niego, gdy kiedykolwiek mieli na to ochotę. – rckoenes

+0

Tak, dobra uwaga. To był szary obszar. – Cocoadelica

Odpowiedz

26

Dla aplikacji, które wiążą się do usług, takich jak lokalizacja, po raz pierwszy oni żądać dostępu do systemu operacyjnego będzie wyrzucić alert z przyciskami, które łączą Ustawienia. Nie jest to działanie aplikacji, ale podstawowe zabezpieczenia systemu operacyjnego.

iOS 6 usunął możliwość zrobienia tego samemu, o czym wspomniałeś.

16

Możesz otworzyć aplikację ustawień programowo w iOS8, ale nie we wcześniejszych wersjach systemu iOS.

Swift:

UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)); 

Swift 4:

if let url = NSURL(string: UIApplicationOpenSettingsURLString) as URL? { 
    UIApplication.shared.openURL(url) 
} 

W celu C

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

Kopiowanie [ktoś odpowiedzą] (http://stackoverflow.com/a/24952919/818506) jest jednym z rodzajów plagiatu, powiedziałbym. –

+2

To jest programowanie ... świata kopii wklejać bro .. – Rajneesh071

+3

Btw, nie wszyscy ** wszyscy wiemy, że – thomers

Powiązane problemy