2016-05-04 13 views
0

Meine App verwendet Touch ID, aber wenn der Benutzer sie nicht aktiviert hat, frage ich sie derzeit, die App "Einstellungen" manuell zu öffnen und nach unten zu Touch ID zu scrollen.iOS Touch ID-Einstellungen programmatisch öffnen

Gibt es eine Möglichkeit, sie direkt mit der Touch ID Einstellungen Seite unten in meiner App zu verknüpfen?

(Beachten Sie, dass ich will nicht die App Einstellungen auf der obersten Ebene öffnen, oder öffnen Sie die nativen Einstellungen Seite der App wie in is it possible to open Settings App using openURL? beschrieben.)

Ein Cordova Plugin wäre ideal, aber Dokumentation auf jedem iOS Systemaufruf wäre großartig.

enter image description here

+0

Nein, es gibt keine Methoden mehr, um bestimmte Einstellungsbildschirme direkt zu öffnen. Ihre App sollte auch in Abwesenheit von TouchID funktionieren, da nicht alle Geräte sie haben oder der Benutzer sie nicht einrichten möchte. – Paulw11

+0

Dies ist kein Duplikat, da ich die App für einen bestimmten Bildschirm in der App "Einstellungen" öffnen möchte und nicht auf der obersten Ebene. Einige Bildschirme * machen * eine API aus, z. B. die nativen Einstellungen für eine bestimmte App: https://github.com/selahssea/Cordova-open-native-settings/blob/master/src/ios/NativeSettings.m. Meine App funktioniert gut ohne Touch ID, aber ich möchte das UX verbessern, indem ich es so einfach wie möglich mache, damit der Benutzer es aktivieren kann, wenn es gewünscht wird. –

+0

Bitte entfernen Sie die Markierung als Duplikat. Wenn die Antwort lautet: "Nein, das ist nicht möglich", dann füge dies hinzu und ich werde es als die akzeptierte Antwort markieren. –

Antwort

0

Leider ist es nicht möglich, die Touch-ID-Seite zu öffnen.

EDIT: Dies wurde unter iOS 10 erneut geändert, überprüfen Sie bitte die Antworten unten.

0

Dies funktioniert für mich:

NSURL* url = [NSURL URLWithString:@"prefs:root=TOUCHID_PASSCODE"]; 
[[UIApplication sharedApplication] openURL:url]; 

edit: Ich denke, das war nur, weil ich eine App (Launcher) installiert haben, dass die Prefs-URL-Schema registriert hat. Die oben funktionierte nur auf einem Gerät, das nicht diese App installiert hat, nachdem ich dieses Schema in meiner eigenen App wird von CFBundleURLTypes in meinem plist, indem Sie die Konfiguration folgendermaßen vor:

target -> Info -> URL Types -> (add) -> URL Schemes = "prefs"

+0

Es funktioniert nicht in meinem Fall kann man mehr ausarbeiten –

2

von Apple verändert die Art und Weise spezifisch zu öffnen Menü in Einstellungen. Der Wert des Schemas für iOS 10 ist "App-Prefs:". Aber vielleicht wird es in den nächsten Versionen geändert werden.

Sie können versuchen, verschiedene URLs in einem Zyklus zu öffnen. Denken Sie daran, dass die Konstante UIApplicationOpenSettingsURLString nicht in iOS 7 definiert ist (wenn Sie diese Version unterstützen).

Bitte sehen Sie sich meinen Code an. Es funktioniert auf iOS 10 und niedrigeren Versionen.

// UIApplicationOpenSettingsURLString is available since iOS 8.0 
NSString * defaultSettingsStr = (&UIApplicationOpenSettingsURLString != NULL ? UIApplicationOpenSettingsURLString : @"prefs:root"); 

// Array of possible URLs, differ in various iOS versions 
NSArray * urlStrs = @[@"App-Prefs:root=TOUCHID_PASSCODE", 
       @"Prefs:root=TOUCHID_PASSCODE", 
       defaultSettingsStr]; 

for (NSString * urlStr in urlStrs) { 
    NSURL * url = [NSURL URLWithString:urlStr]; 

    if ([[UIApplication sharedApplication] canOpenURL:url]) { 
     // openURL is deprecated since iOS 10 
     [[UIApplication sharedApplication] openURL:url]; 
     break; 
    } 
} 
Verwandte Themen