我的應用使用Touch ID,但如果用戶未啓用它,我當前要求他們手動打開設置應用並向下滾動到Touch ID項目。以編程方式打開iOS Touch ID設置
有沒有辦法直接將它們鏈接到Touch ID Settings頁面從我的應用程序中顯示?
(請注意,我不希望在頂層打開設置應用程序,或打開在is it possible to open Settings App using openURL?描述應用程序的本地設置頁)。
一個科爾多瓦插件將是理想的,但在任何iOS版的文件系統調用會很好。
我的應用使用Touch ID,但如果用戶未啓用它,我當前要求他們手動打開設置應用並向下滾動到Touch ID項目。以編程方式打開iOS Touch ID設置
有沒有辦法直接將它們鏈接到Touch ID Settings頁面從我的應用程序中顯示?
(請注意,我不希望在頂層打開設置應用程序,或打開在is it possible to open Settings App using openURL?描述應用程序的本地設置頁)。
一個科爾多瓦插件將是理想的,但在任何iOS版的文件系統調用會很好。
可悲的是,這是不可能打開觸摸ID頁面。
編輯: 這再次在iOS 10下更改,請檢查下面的答案。
這個工作對我來說:
NSURL* url = [NSURL URLWithString:@"prefs:root=TOUCHID_PASSCODE"];
[[UIApplication sharedApplication] openURL:url];
編輯:我認爲這只是工作,因爲我有一個應用程序(啓動)安裝已註冊的首選項URL方案。以上只是工作是沒有安裝這個軟件,我註冊在自己的應用程序該方案通過在做我的plist配置CFBundleURLTypes後的設備在以下方面:
target -> Info -> URL Types -> (add) -> URL Schemes = "prefs"
它不是在我的情況下可以,你詳細說明 –
蘋果更改爲打開特定的方式菜單中的設置。 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;
}
}
不,不再有任何方法可以直接打開特定設置屏幕。您的應用程序也應該在沒有TouchID的情況下運行,因爲並非所有設備都有它,或者用戶可能不想設置它。 – Paulw11
這不是重複的,因爲我要求將應用程序打開到設置應用程序中的特定屏幕,而不是在頂層。一些屏幕*做*暴露如API,例如特定應用程序的本地設置:https://github.com/selahssea/Cordova-open-native-settings/blob/master/src/ios/NativeSettings.m。我的應用在沒有Touch ID的情況下運行良好,但我希望通過儘可能簡化用戶啓用應用來改進用戶體驗。 –
請注意不要重複。如果答案是「不是這不可能」,那麼隨意添加這個,我會將其標記爲接受的答案。 –