2016-06-21 32 views

Antwort

9

Keine der bisherigen Methoden zum Starten der Wurzel „Einstellungen“ App auf iOS 8+ wurden offiziell von Apple unterstützt, so können wir leider nicht auf sie verlassen. Es ist auch möglich, dass Apps, die auf dem undokumentierten Verhalten beruhen, während der App Store-Überprüfung abgelehnt werden können, selbst wenn andere genehmigt wurden - selbst wenn die gleiche App zuvor genehmigt wurde!

Ich habe es nicht gelungen, irgendeine Abhilfe entweder zu entdecken, so scheint es, haben Sie folgende Möglichkeiten:

  1. Öffnen Sie die App-spezifische URL (wie in vielen Orten detailliert, einschließlich @ alvin-varghese ‚s Antwort oben), und bitten Sie dann den Benutzer, rückwärts zu navigieren. (Eine schreckliche Benutzererfahrung, da der Benutzer weiß, dass er von der App-Liste in die Haupteinstellungen scrollen muss.)

  2. Verwenden Sie einen Anweisungsbildschirm oder eine Warnmeldung in Ihrer App, um Benutzer darüber aufzuklären, wie Sie sie selbst finden. (Nicht viel besser, aber zumindest nicht ohne Wegpunkte in einem ungewohnten Kontext fallen gelassen.)

Es nicht in iOS 10 eine offiziell unterstützte Weg, um dies zu geschehen zu sein scheint, und wie Sie darauf hingewiesen, es scheint wie die alten Wege (Hinzufügen prefs Schema zu Ihrer Datei Info.plist und mit openURL(_:)) funktionieren nicht mehr.

+0

Hallo zusammen! Kennen Sie eine nicht-öffentliche Möglichkeit für Enterprise Apps, eine "tiefe Verknüpfung" zu erstellen? – user3191334

+0

FWIW, eine URL-Zeichenfolge von "App-Prefs: root" wird in der Home-Ansicht der App "Einstellungen" angezeigt (im Gegensatz zur Seite mit den Einstellungen Ihrer App). Nicht ganz ideal, aber besser, als den Benutzer zu bitten, zuerst auf die Schaltfläche "Zurück" zu klicken. –

+0

Update: Ich kann jetzt die App "Einstellungen" direkt auf eine bestimmte Seite öffnen, indem ich den Anweisungen von Vandit Mehta folge. (Im Prinzip fügen Sie "prefs" zu Ihren URL-Schemas in der App hinzu; siehe unten.) –

2

Verwenden Sie dieses, es funktioniert.

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

Hallo Alvin, ich frage über das Öffnen von iOS-Einstellungen wie Wifi oder Cellular, die vorher arbeiten: prefs: root = Allgemein & path = Über, aber es funktioniert nicht mehr in iOS 10 –

+0

Ich denke, sie arbeiten immer noch mit Extensions. Ex-App ist "Magic Launcher" in Appstore. – Trident

5

Von iOS 10 einige der Dinge verändert,

Also, für so etwas wie Bluetooth Sie unten Zeilen Code schreiben müssen,

Swift 3.0:

func openBluetoothSettings(){ 
     let urlBTSet = URL(string: "App-Prefs:root=Bluetooth") 
     let objApp = UIApplication.shared 
     objApp.openURL(urlBTSet!) 
    } 

Objective-c

Also, in oben genannten Code, was sie geändert haben, ist Zeichenfolge muss Anzeige d "App-Prefs: root = Bluetooth" (Dies ist das Beispiel Öffnen der Bluetooth-Einstellungen)

nicht vergessen Sie: 'Gehe zu taget -> Info -> URL-Typen -> Add "Prefs" in URL Schemes'

+0

Ich habe versucht, Ihre Zeichenfolge, es hat nicht funktioniert für mich (die Bluetooth-Seite nicht geöffnet). Allerdings hat es die Setting App auf seiner Homepage gestartet.Dies ist in manchen Fällen besser als das Öffnen der Einstellungsseite Ihrer App. –

+1

Sie testen mit iOS 10 und höher oder? und in schnellen oder objektiven c? –

+0

iOS 10, Swift 3.0. Funktioniert es noch für dich? –