2016-05-04 104 views
0

我的應用使用Touch ID,但如果用戶未啓用它,我當前要求他們手動打開設置應用並向下滾動到Touch ID項目。以編程方式打開iOS Touch ID設置

有沒有辦法直接將它們鏈接到Touch ID Settings頁面從我的應用程序中顯示?

(請注意,我不希望在頂層打開設置應用程序,或打開在is it possible to open Settings App using openURL?描述應用程序的本地設置頁)。

一個科爾多瓦插件將是理想的,但在任何iOS版的文件系統調用會很好。

enter image description here

+0

不,不再有任何方法可以直接打開特定設置屏幕。您的應用程序也應該在沒有TouchID的情況下運行,因爲並非所有設備都有它,或者用戶可能不想設置它。 – Paulw11

+0

這不是重複的,因爲我要求將應用程序打開到設置應用程序中的特定屏幕,而不是在頂層。一些屏幕*做*暴露如API,例如特定應用程序的本地設置:https://github.com/selahssea/Cordova-open-native-settings/blob/master/src/ios/NativeSettings.m。我的應用在沒有Touch ID的情況下運行良好,但我希望通過儘可能簡化用戶啓用應用來改進用戶體驗。 –

+0

請注意不要重複。如果答案是「不是這不可能」,那麼隨意添加這個,我會將其標記爲接受的答案。 –

回答

0

可悲的是,這是不可能打開觸摸ID頁面。

編輯: 這再次在iOS 10下更改,請檢查下面的答案。

0

這個工作對我來說:

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

編輯:我認爲這只是工作,因爲我有一個應用程序(啓動)安裝已註冊的首選項URL方案。以上只是工作是沒有安裝這個軟件,我註冊在自己的應用程序該方案通過在做我的plist配置CFBundleURLTypes後的設備在以下方面:

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

+0

它不是在我的情況下可以,你詳細說明 –

2

蘋果更改爲打開特定的方式菜單中的設置。 iOS 10方案的價值爲「App-Prefs:」。但也許它會在下一個版本中改變。

您可以嘗試在一個循環中打開不同的URL。 請記住,在iOS 7中沒有定義常量UIApplicationOpenSettingsURLString(如果您支持此版本)。

請看看我的代碼。它適用於iOS 10及更低版本。

// 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; 
    } 
}