Okay, ich weiß, dass es viele Fragen gibt, aber sie sind alle von vor langer Zeit.
So. Ich weiß, dass es möglich ist, weil die Karten-App es tut.
Wenn ich in der Karten-App die Lokalisierung für diese App deaktiviere, wird mir eine Nachricht gesendet, und wenn ich auf OK drücke, wird die "Einstellungen-App" geöffnet. Und meine Frage ist, wie ist das möglich? Wie kann ich die "Einstellungs-App" von meiner eigenen App aus öffnen?
Grundsätzlich muss ich dasselbe tun. Wenn der Benutzer den Speicherort für meine App deaktiviert, zeige ich ihm eine Nachricht mit der Aufschrift "App einstellen".
ios
objective-c
iphone
application-settings
appsettings
FelipeDev.-
quelle
quelle
Antworten:
Wie von erwähnt Karan Dua ist dies nun möglich , in iOS8 Verwendung
UIApplicationOpenSettingsURLString
finden Apples Dokumentation .Beispiel:
Swift 4.2
In Swift 3:
In Swift 2:
In Ziel-C
Vor iOS 8:
Du kannst nicht. Wie Sie sagten, wurde dies schon oft behandelt, und das Popup, in dem Sie aufgefordert werden, die Ortungsdienste einzuschalten, wird von Apple und nicht von der App selbst bereitgestellt. Aus diesem Grund kann die Einstellungsanwendung geöffnet werden.
Hier sind einige verwandte Fragen und Artikel:
Ist es möglich, die Einstellungs-App mit openURL zu öffnen?
Programmgesteuertes Öffnen der Einstellungs-App (iPhone)
Wie kann ich die Einstellungen-App öffnen, wenn der Benutzer eine Taste drückt?
iPhone: Öffnen des Anwendungseinstellungsfensters über die App
Öffnen Sie UIPickerView, indem Sie auf einen Eintrag in den Einstellungen der App klicken.
Einstellungen öffnen App?
iOS: Sie machen falsche Einstellungen
quelle
Aus der Antwort von @Yatheeshaless :
Sie können die Einstellungs-App programmgesteuert in iOS8 öffnen, jedoch nicht in früheren Versionen von iOS.
Schnell:
Swift 4:
Swift 4.2 (BETA):
Ziel c:
quelle
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
JA!! Sie können den Bildschirm Geräteeinstellungen starten, den ich unter iOS 9.2 getestet habe
Schritt 1. Wir müssen URL-Schemata hinzufügen
Gehen Sie zu Projekteinstellungen -> Info -> URL-Typen -> Neue URL-Schemata hinzufügen
Schritt 2. Starten Sie die Einstellungen programmgesteuert. Dank @davidcann
Wir können auch Unterbildschirme wie Musik, Ort usw. starten, indem wir nur den richtigen Namen verwenden
Sehen Sie diese vollständige Namensliste hier, die von Henri Normak geteilt wird
Aktualisieren:
Gemäß dem Kommentar möchte jeder wissen, was nach dieser Änderung meines Antragsstatus passiert?
So
YES!! I got successful update submission and application is available on store without any complain.
Nur zur Bestätigung, ich habe gerade heute Morgen die Ortungsdienste heruntergeladen und deaktiviert und dann die App gestartet, die mich um die Erlaubnis zum Standort bat, und dann war mein Alarm-Popup da, um mich über Einstellungen -> Seite Ortungsdienste -> Aktiviert -> zu senden Das ist es!!
! [HINWEIS: Ihre App wird möglicherweise abgelehnt ... auch wenn sie genehmigt wurde, kann sie in einer zukünftigen Version abgelehnt werden, wenn Sie diese Methode verwenden ...] 4
quelle
Sie können dies unter iOS 5.0 und höher verwenden:Dies funktioniert nicht mehr.quelle
prefs:root=General&path=Bluetooth
iOS 10 Update
Apple hat die Methode geändert, um Async im Hauptthread zu öffnen. Ab sofort können die App-Einstellungen jedoch nur noch in nativen Einstellungen geöffnet werden.
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
iOS 9 Update
Es ist jetzt möglich, direkt zum Untereinstellungsmenü zu wechseln. Es muss jedoch ein URL-Schema erstellt werden. Dies kann auf zwei Arten erfolgen:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>prefs</string> </array> </dict> </array>
Dann der Code:
Schnell
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)
Ziel c
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];
quelle
Magic Launcher
im Appstore.In Swift 3 / iOS 10+ sieht das jetzt so aus
quelle
Swift 3:
quelle
UIApplicationOpenSettingsURLString
Dies funktioniert nur, wenn Sie zuvor eine Berechtigung erteilt haben. Zum Beispiel Standort, Foto, Kontakt, Push-Benachrichtigungszugriff. Wenn Sie also keine solche Berechtigung (en) vom Benutzer haben:Wenn iOS 10 oder höher ,
Es öffnet die Einstellungen, stürzt dann aber ab. Der Grund, es gibt nichts in den Einstellungen für Ihre App.
Der folgende Code öffnet Ihre Anwendungseinstellungen in der iOS-Einstellung.
Aufgrund der Nichtverfügbarkeit des Geräts konnte ich dies unter iOS <10 nicht überprüfen.
Außerdem konnte ich unten Code von einigen Kernpunkten finden und es funktioniert auch unter iOS 10 einwandfrei. Ich bin mir jedoch nicht sicher, ob dies vom Apple-Überprüfungsteam genehmigt wird oder nicht.
https://gist.github.com/johnny77221/bcaa5384a242b64bfd0b8a715f48e69f
quelle
In Swift 3 brauchte ich nur Folgendes (hier zum Beispiel umleiten zu meinen App-Benachrichtigungen):
Quelle: Phynet-Kern .
Dies funktionierte bei mir nur, wenn die Einstellungen im Hintergrund sind. Sie werden zu Ihren App-Benachrichtigungseinstellungen weitergeleitet. Wenn die Einstellungen jedoch nicht im Hintergrund ausgeführt wurden, werden Sie nur zu den Benachrichtigungseinstellungen im Allgemeinen weitergeleitet.
quelle
Anscheinend können Sie die
prefs:<area>
URL verwenden, um die Einstellungen zu öffnen und zu bestimmten Bereichen zu wechseln. Apple könnte diese ändern und Ihre App beschädigen. Überprüfen Sie daher immer, ob Sie sie zuerst öffnen können.In diesem Artikel haben sie einige für iOS 13.1 aufgelistet:
Einstellungs-URLs
iCloud
prefs:root=CASTLE
prefs:root=CASTLE&path=BACKUP
Funkgeräte
prefs:root=WIFI
prefs:root=Bluetooth
prefs:root=MOBILE_DATA_SETTINGS_ID
Persönlicher Hotspot
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
Benachrichtigungen
prefs:root=NOTIFICATIONS_ID
prefs:root=NOTIFICATIONS_ID&path=Siri%20Suggestions
Geräusche
prefs:root=Sounds
prefs:root=Sounds&path=Ringtone
Störe nicht
prefs:root=DO_NOT_DISTURB
prefs:root=DO_NOT_DISTURB&path=Allow%20Calls%20From
Bildschirmzeit
prefs:root=SCREEN_TIME
prefs:root=SCREEN_TIME&path=DOWNTIME
prefs:root=SCREEN_TIME&path=APP_LIMITS
prefs:root=SCREEN_TIME&path=ALWAYS_ALLOWED
Allgemeines
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
Kontrollzentrum
prefs:root=ControlCenter
prefs:root=ControlCenter&path=CUSTOMIZE_CONTROLS
Anzeige
prefs:root=DISPLAY
prefs:root=DISPLAY&path=AUTOLOCK
prefs:root=DISPLAY&path=TEXT_SIZE
Barrierefreiheit
prefs:root=ACCESSIBILITY
Hintergrund
prefs:root=Wallpaper
Siri
prefs:root=SIRI
Apfelstift
prefs:root=Pencil
Gesichtserkennung
prefs:root=PASSCODE
Notfall SOS
prefs:root=EMERGENCY_SOS
Batterie
prefs:root=BATTERY_USAGE
prefs:root=BATTERY_USAGE&path=BATTERY_HEALTH
Privatsphäre
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\
Appstore
prefs:root=STORE
prefs:root=STORE&path=App%20Downloads
prefs:root=STORE&path=Video%20Autoplay
Brieftasche
prefs:root=PASSBOOK
Passwörter & Konten
prefs:root=ACCOUNTS_AND_PASSWORDS
prefs:root=ACCOUNTS_AND_PASSWORDS&path=FETCH_NEW_DATA
prefs:root=ACCOUNTS_AND_PASSWORDS&path=ADD_ACCOUNT
Mail
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
Kontakte
prefs:root=CONTACTS
Kalender
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
Anmerkungen
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
Erinnerungen
prefs:root=REMINDERS
prefs:root=REMINDERS&path=DEFAULT_LIST
Sprachnotizen
prefs:root=VOICE_MEMOS
Telefon
prefs:root=Phone
Mitteilungen
prefs:root=MESSAGES
FaceTime
prefs:root=FACETIME
Karten
prefs:root=MAPS
prefs:root=MAPS&path=Driving%20%26%20Navigation
prefs:root=MAPS&path=Transit
Kompass
prefs:root=COMPASS
Messen
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
Nachrichten
prefs:root=NEWS
Gesundheit
prefs:root=HEALTH
Verknüpfungen
prefs:root=SHORTCUTS
Musik
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
Fernseher
prefs:root=TVAPP
Fotos
prefs:root=Photos
Kamera
prefs:root=CAMERA
prefs:root=CAMERA&path=Record%20Video
prefs:root=CAMERA&path=Record%20Slo-mo
Bücher
prefs:root=IBOOKS
Spielezentrum
prefs:root=GAMECENTER
quelle
Sie können den folgenden Code dafür verwenden.
quelle
SWIFT 4.0
quelle
Swift 4
Ich ziehe es vor, die Umgebung sicherer zu öffnen.
quelle
Schnell Mit der folgenden Funktion können Sie die Einstellungs-App mit der Bluetooth-Seite öffnen
Auch dies würde die Einstellungen der App nicht öffnen. Dies würde die Einstellungs-App mit Bluetooth öffnen, da dies eine tiefe Verbindung zu Bluetooth darstellt.
quelle
Getestet mit iOS 10. Arbeiten
Viel Spaß beim Codieren :)
quelle
So fügen Sie der akzeptierten Antwort Folgendes hinzu: (aus der Apple-Entwicklerdokumentation) "Wenn Sie die aus dieser Zeichenfolge erstellte URL (openSettingsURLString) öffnen, startet das System die App" Einstellungen "und zeigt die benutzerdefinierten Einstellungen der App an, falls vorhanden." Wenn Sie also Einstellungen für Ihre App öffnen möchten, erstellen Sie Ihr eigenes Settings.bundle.
quelle
Fügen Sie dies Ihrer Klasse hinzu,
Rufen Sie so an,
quelle