以编程方式打开iOS触摸ID设置
我的应用程序使用触摸ID,但如果用户尚未启用,我当前会要求他们手动打开设置应用程序并向下滚动到触摸ID项目 有没有办法从我的应用程序中直接将它们链接到下面显示的触摸ID设置页面 (请注意,我不想在顶层打开设置应用程序,也不想按中所述打开应用程序的本机设置页面。) Cordova插件将是理想的,但任何iOS系统调用的文档都将是很好的以编程方式打开iOS触摸ID设置,ios,cordova,touch-id,Ios,Cordova,Touch Id,我的应用程序使用触摸ID,但如果用户尚未启用,我当前会要求他们手动打开设置应用程序并向下滚动到触摸ID项目 有没有办法从我的应用程序中直接将它们链接到下面显示的触摸ID设置页面 (请注意,我不想在顶层打开设置应用程序,也不想按中所述打开应用程序的本机设置页面。) Cordova插件将是理想的,但任何iOS系统调用的文档都将是很好的 遗憾的是,无法打开触摸ID页面 编辑: 这在iOS 10下再次更改,请检查下面的答案。遗憾的是,无法打开触摸ID页面 编辑: 这在iOS 10下再次被更改,请检查下面
遗憾的是,无法打开触摸ID页面 编辑:
这在iOS 10下再次更改,请检查下面的答案。遗憾的是,无法打开触摸ID页面 编辑: 这在iOS 10下再次被更改,请检查下面的答案。这对我很有用:
NSURL* url = [NSURL URLWithString:@"prefs:root=TOUCHID_PASSCODE"];
[[UIApplication sharedApplication] openURL:url];
编辑:我想这只是因为我安装了一个应用程序(启动器),它已经注册了prefs URL方案。在我通过在我的plist中配置CbundleUrlTypes在我自己的应用程序中注册此方案后,上述操作仅适用于未安装此应用程序的设备,方法如下:
目标->信息->URL类型->(添加)->URL Schemes=“prefs”
这对我来说很有用:
NSURL* url = [NSURL URLWithString:@"prefs:root=TOUCHID_PASSCODE"];
[[UIApplication sharedApplication] openURL:url];
编辑:我想这只是因为我安装了一个应用程序(启动器),它已经注册了prefs URL方案。在我通过在我的plist中配置CbundleUrlTypes在我自己的应用程序中注册此方案后,上述操作仅适用于未安装此应用程序的设备,方法如下:
target->Info->URL-Types->(add)->URL-Schemes=“prefs”
苹果改变了在设置中打开特定菜单的方式。iOS 10的scheme值为“App Prefs:”。但在下一个版本中可能会有所改变
// 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;
}
}
您可以尝试在一个循环中打开不同的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;
}
}
苹果改变了在“设置”中打开特定菜单的方式。iOS 10的scheme值为“App Prefs:”。但在下一个版本中可能会有所改变
// 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;
}
}
您可以尝试在一个循环中打开不同的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的情况下运行,因为并非所有设备都有TouchID,或者用户可能不想设置它。这不是重复的,因为我要求将应用程序打开到设置应用程序中的特定屏幕,而不是在顶层。某些屏幕确实公开API等,例如特定应用的本机设置:。我的应用程序在没有触摸ID的情况下运行良好,但我希望通过让用户尽可能轻松地启用它来改进用户体验。请取消标记为副本。如果答案是“不,这是不可能的”,请随意添加,我会将其标记为已接受的答案。从ios8开始,您可以打开自己的应用程序设置,如副本中所述,一些系统对话框将直接打开特定的设置页,但是应用程序无法直接打开特定设置页面。您链接的Cordova代码与Cordova模块中的代码相同。现在,已经没有任何方法可以直接打开特定设置屏幕。您的应用程序也应该在没有TouchID的情况下运行,因为并非所有设备都有TouchID,或者用户可能不想设置它。这不是重复的,因为我要求将应用程序打开到设置应用程序中的特定屏幕,而不是在顶层。某些屏幕确实公开API等,例如特定应用的本机设置:。我的应用程序在没有触摸ID的情况下运行良好,但我希望通过让用户尽可能轻松地启用它来改进用户体验。请取消标记为副本。如果答案是“不,这是不可能的”,请随意添加,我会将其标记为已接受的答案。从ios8开始,您可以打开自己的应用程序设置,如副本中所述,一些系统对话框将直接打开特定的设置页,但应用程序无法直接打开特定的设置页面。您链接的Cordova代码与Cordova模块中的代码相同。该代码在我的案例中不起作用。可以,您详细说明。在我的案例中不起作用。可以,您详细说明