Okej, wiem, że jest wiele pytań na ten temat, ale wszystkie pochodzą z dawnych czasów.
Więc. Wiem, że jest to możliwe, ponieważ robi to aplikacja Map.
Jeśli wyłączę lokalizację tej aplikacji, w aplikacji Map wyśle mi wiadomość, a jeśli w porządku, naciśniesz „Aplikacja ustawień”. Moje pytanie brzmi: jak to możliwe? Jak mogę otworzyć aplikację „Setting” z własnej aplikacji?
Zasadniczo muszę zrobić to samo, jeśli użytkownik wyłączy lokalizację mojej aplikacji, wtedy pokażę mu komunikat mówiący coś, co otworzy „Ustawienie aplikacji”
ios
objective-c
iphone
application-settings
appsettings
FelipeDev.-
źródło
źródło
Odpowiedzi:
Jak wspomniano Karan Dua, jest to teraz możliwe w iOS8 przy użyciu
UIApplicationOpenSettingsURLString
patrz dokumentacja Apple .Przykład:
Szybki 4.2
W Swift 3:
W Swift 2:
W celu C
Przed iOS 8:
Nie możesz. Jak już powiedziałeś, było to wielokrotnie omawiane i wyskakujące okienko z prośbą o włączenie usług lokalizacyjnych jest dostarczane przez Apple, a nie przez samą aplikację. Dlatego jest w stanie otworzyć aplikację ustawień.
Oto kilka powiązanych pytań i artykułów:
czy można otworzyć aplikację Ustawienia za pomocą openURL?
Programowe otwieranie aplikacji ustawień (iPhone)
Jak mogę otworzyć aplikację Ustawienia, gdy użytkownik naciśnie przycisk?
iPhone: otwieranie panelu preferencji aplikacji z aplikacji
Otwórz UIPickerView, klikając pozycję w preferencjach aplikacji - jak to zrobić?
Czy otworzyć aplikację Ustawienia?
iOS: źle robisz ustawienia
źródło
Od @Yatheeshaless „s odpowiedź :
Możesz otworzyć aplikację ustawień programowo w iOS8, ale nie we wcześniejszych wersjach iOS.
Szybki:
Swift 4:
Swift 4.2 (BETA):
Cel C:
źródło
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
TAK!! możesz uruchomić ekran Ustawienia urządzenia, przetestowałem na iOS 9.2
Krok 1. Musimy dodać schematy URL
Przejdź do Ustawienia projektu -> Informacje -> Typy adresów URL -> Dodaj nowe schematy adresów URL
Krok 2. Uruchom programowo ustawienia Dzięki @davidcann
Możemy także uruchamiać pod-ekrany, takie jak Muzyka, Lokalizacja itp., Po prostu używając właściwej nazwy
Zobacz pełną listę nazwisk tutaj udostępnioną przez Henri Normaka
Aktualizacja:
Zgodnie z komentarzem każdy chce wiedzieć, co stanie się po tej zmianie statusu mojego zgłoszenia?
Więc
YES!! I got successful update submission and application is available on store without any complain.
Aby potwierdzić, właśnie pobrałem dziś rano i wyłączyłem usługi lokalizacyjne, a następnie uruchomiłem aplikację, która poprosiła mnie o pozwolenie na lokalizację, a następnie wyskoczyło moje powiadomienie, aby wysłać mnie w ustawieniach -> strona usług lokalizacyjnych -> Włączone -> Otóż to!!
! [UWAGA: Twoja aplikacja może zostać odrzucona ... nawet jeśli zostanie zatwierdzona, może zostać odrzucona w przyszłej wersji, jeśli użyjesz tej metody ...] 4
źródło
Możesz użyć tego na iOS 5.0 i nowszych:To już nie działa.źródło
prefs:root=General&path=Bluetooth
Aktualizacja iOS 10
Apple zmieniło metodę otwierania asynchronizacji w głównym wątku. Jednak od teraz możliwe jest otwieranie ustawień aplikacji tylko w ustawieniach natywnych.
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
Aktualizacja iOS 9
Teraz można przejść bezpośrednio do menu pod-ustawień. Jednak należy utworzyć schemat adresów URL. Można to zrobić na dwa sposoby:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>prefs</string> </array> </dict> </array>
Następnie kod:
Szybki
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)
Cel C
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];
źródło
Magic Launcher
w Appstore.W Swift 3 / iOS 10+ wygląda to teraz
źródło
Swift 3:
źródło
Wygląda na to, że możesz użyć
prefs:<area>
adresu URL, aby otworzyć ustawienia i przejść do określonych obszarów. Apple może to zmienić i zepsuć aplikację, więc zawsze sprawdź, czy możesz je najpierw otworzyć.Z tego artykułu wymienili niektóre z nich dla iOS 13.1:
Adresy URL ustawień
iCloud
prefs:root=CASTLE
prefs:root=CASTLE&path=BACKUP
Radia bezprzewodowe
prefs:root=WIFI
prefs:root=Bluetooth
prefs:root=MOBILE_DATA_SETTINGS_ID
Osobisty punkt dostępu
prefs:root=INTERNET_TETHERING
prefs:root=INTERNET_TETHERING&path=Family%20Sharing
prefs:root=INTERNET_TETHERING&path=Wi-Fi%20Password
VPN
prefs:root=General&path=VPN
Powiadomienia
prefs:root=NOTIFICATIONS_ID
prefs:root=NOTIFICATIONS_ID&path=Siri%20Suggestions
Dźwięki
prefs:root=Sounds
prefs:root=Sounds&path=Ringtone
Nie przeszkadzać
prefs:root=DO_NOT_DISTURB
prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From
Czas ekranowy
prefs:root=SCREEN_TIME
prefs:root=SCREEN_TIME&path=DOWNTIME
prefs:root=SCREEN_TIME&path=APP_LIMITS
prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED
Generał
prefs:root=General
prefs:root=General&path=About
prefs:root=General&path=SOFTWARE_UPDATE_LINK
prefs:root=General&path=CARPLAY
prefs:root=General&path=AUTO_CONTENT_DOWNLOAD
prefs:root=General&path=MULTITASKING
prefs:root=General&path=DATE_AND_TIME
prefs:root=General&path=Keyboard
prefs:root=General&path=Keyboard/KEYBOARDS
prefs:root=General&path=Keyboard/Hardware%20Keyboard
prefs:root=General&path=Keyboard/USER_DICTIONARY
prefs:root=General&path=Keyboard/ReachableKeyboard
prefs:root=General&path=INTERNATIONAL
prefs:root=General&path=DICTIONARY
prefs:root=General&path=ManagedConfigurationList
prefs:root=General&path=Reset
Centrum Kontroli
prefs:root=ControlCenter
prefs:root=ControlCenter&path=CUSTOMIZE_CONTROLS
Pokaz
prefs:root=DISPLAY
prefs:root=DISPLAY&path=AUTOLOCK
prefs:root=DISPLAY&path=TEXT_SIZE
Dostępność
prefs:root=ACCESSIBILITY
Tapeta
prefs:root=Wallpaper
Siri
prefs:root=SIRI
Ołówek Jabłkowy
prefs:root=Pencil
Identyfikator twarzy
prefs:root=PASSCODE
Awaryjne SOS
prefs:root=EMERGENCY_SOS
Bateria
prefs:root=BATTERY_USAGE
prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH
Prywatność
prefs:root=Privacy
prefs:root=Privacy&path=LOCATION
prefs:root=Privacy&path=CONTACTS
prefs:root=Privacy&path=CALENDARS
prefs:root=Privacy&path=REMINDERS
prefs:root=Privacy&path=PHOTOS
prefs:root=Privacy&path=MICROPHONE
prefs:root=Privacy&path=SPEECH_RECOGNITION
prefs:root=Privacy&path=CAMERA
prefs:root=Privacy&path=MOTION\
Sklep z aplikacjami
prefs:root=STORE
prefs:root=STORE&path=App%20Downloads
prefs:root=STORE&path=Video%20Autoplay
Portfel
prefs:root=PASSBOOK
Hasła i konta
prefs:root=ACCOUNTS_AND_PASSWORDS
prefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
Poczta
prefs:root=MAIL
prefs:root=MAIL&path=Preview
prefs:root=MAIL&path=Swipe%20Options
prefs:root=MAIL&path=NOTIFICATIONS
prefs:root=MAIL&path=Blocked
prefs:root=MAIL&path=Muted%20Thread%20Action
prefs:root=MAIL&path=Blocked%20Sender%20Options
prefs:root=MAIL&path=Mark%20Addresses
prefs:root=MAIL&path=Increase%20Quote%20Level
prefs:root=MAIL&path=Include%20Attachments%20with%20Replies
prefs:root=MAIL&path=Signature
prefs:root=MAIL&path=Default%20Account
Łączność
prefs:root=CONTACTS
Kalendarz
prefs:root=CALENDAR
prefs:root=CALENDAR&path=Alternate%20Calendars
prefs:root=CALENDAR&path=Sync
prefs:root=CALENDAR&path=Default%20Alert%20Times
prefs:root=CALENDAR&path=Default%20Calendar
Notatki
prefs:root=NOTES
prefs:root=NOTES&path=Default%20Account
prefs:root=NOTES&path=Password
prefs:root=NOTES&path=Sort%20Notes%20By
prefs:root=NOTES&path=New%20Notes%20Start%20With
prefs:root=NOTES&path=Sort%20Checked%20Items
prefs:root=NOTES&path=Lines%20%26%20Grids
prefs:root=NOTES&path=Access%20Notes%20from%20Lock%20Screen
Przypomnienia
prefs:root=REMINDERS
prefs:root=REMINDERS&path=DEFAULT_LIST
Notatki głosowe
prefs:root=VOICE_MEMOS
Telefon
prefs:root=Phone
Wiadomości
prefs:root=MESSAGES
FaceTime
prefs:root=FACETIME
Mapy
prefs:root=MAPS
prefs:root=MAPS&path=Driving%20%26%20Navigation
prefs:root=MAPS&path=Transit
Kompas
prefs:root=COMPASS
Pomiar
prefs:root=MEASURE
Safari
prefs:root=SAFARI
prefs:root=SAFARI&path=Content%20Blockers
prefs:root=SAFARI&path=DOWNLOADS
prefs:root=SAFARI&path=Close%20Tabs
prefs:root=SAFARI&path=CLEAR_HISTORY_AND_DATA
prefs:root=SAFARI&path=Page%20Zoom
prefs:root=SAFARI&path=Request%20Desktop%20Website
prefs:root=SAFARI&path=Reader
prefs:root=SAFARI&path=Camera
prefs:root=SAFARI&path=Microphone
prefs:root=SAFARI&path=Location
prefs:root=SAFARI&path=ADVANCED
Aktualności
prefs:root=NEWS
Zdrowie
prefs:root=HEALTH
Skróty
prefs:root=SHORTCUTS
Muzyka
prefs:root=MUSIC
prefs:root=MUSIC&path=com.apple.Music:CellularData
prefs:root=MUSIC&path=com.apple.Music:OptimizeStorage
prefs:root=MUSIC&path=com.apple.Music:EQ
prefs:root=MUSIC&path=com.apple.Music:VolumeLimit
telewizja
prefs:root=TVAPP
Zdjęcia
prefs:root=Photos
Aparat fotograficzny
prefs:root=CAMERA
prefs:root=CAMERA&path=Record%20Video
prefs:root=CAMERA&path=Record%20Slo-mo
Książki
prefs:root=IBOOKS
Centrum Gier
prefs:root=GAMECENTER
źródło
UIApplicationOpenSettingsURLString
zadziała to tylko wtedy, gdy wcześniej zezwoliłeś na jakiekolwiek pozwolenie. Na przykład Lokalizacja, Zdjęcie, Kontakt, Dostęp do powiadomień push. Jeśli więc nie masz takich uprawnień od użytkownika:Jeśli iOS 10 lub nowszy ,
Otworzy Ustawienia, ale następnie zawiesi. Powodem tego jest brak ustawień aplikacji.
Poniższy kod otworzy ustawienia aplikacji w ustawieniach iOS.
Z powodu niedostępności urządzenia nie mogłem tego sprawdzić na iOS <10.
Ponadto mogłem znaleźć poniższy kod z jakiegoś gist i działa dobrze również na iOS 10. Ale nie jestem pewien, czy to zatwierdzi zespół weryfikacyjny Apple, czy nie.
https://gist.github.com/johnny77221/bcaa5384a242b64bfd0b8a715f48e69f
źródło
W Swift 3 potrzebowałem tylko tego (tutaj na przykład przekieruj do powiadomień mojej aplikacji):
Źródło: phynet gist .
Działa to ze mną tylko wtedy, gdy ustawienia są w tle. Przekieruje Cię do ustawień powiadomień aplikacji, ale jeśli ustawienia nie działały w tle, po prostu przekieruje Cię do ustawień powiadomień w ogóle.
źródło
Możesz użyć do tego poniższego kodu.
źródło
SWIFT 4.0
źródło
Szybki 4
Wolę otwierać ustawienia w bezpieczniejszy sposób,
źródło
Swift Możesz użyć następującej funkcji, aby otworzyć aplikację Ustawienia ze stroną Bluetooth
Ponownie nie otworzy to ustawień aplikacji. Spowoduje to otwarcie aplikacji ustawień z Bluetooth, ponieważ jest to precyzyjne połączenie z Bluetooth.
źródło
Testowane z iOS 10. Działa
Happy Coding :)
źródło
Aby dodać do zaakceptowanej odpowiedzi: (z dokumentacji programisty Apple) „Po otwarciu adresu URL zbudowanego z tego ciągu (openSettingsURLString) system uruchamia aplikację Ustawienia i wyświetla niestandardowe ustawienia aplikacji, jeśli takie istnieją”. Jeśli więc chcesz otworzyć ustawienia swojej aplikacji, utwórz własny plik Settings.bundle.
źródło
Dodaj to do swojej klasy,
Zadzwoń tak
źródło