Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式打开iOS触摸ID设置_Ios_Cordova_Touch Id - Fatal编程技术网

以编程方式打开iOS触摸ID设置

以编程方式打开iOS触摸ID设置,ios,cordova,touch-id,Ios,Cordova,Touch Id,我的应用程序使用触摸ID,但如果用户尚未启用,我当前会要求他们手动打开设置应用程序并向下滚动到触摸ID项目 有没有办法从我的应用程序中直接将它们链接到下面显示的触摸ID设置页面 (请注意,我不想在顶层打开设置应用程序,也不想按中所述打开应用程序的本机设置页面。) Cordova插件将是理想的,但任何iOS系统调用的文档都将是很好的 遗憾的是,无法打开触摸ID页面 编辑: 这在iOS 10下再次更改,请检查下面的答案。遗憾的是,无法打开触摸ID页面 编辑: 这在iOS 10下再次被更改,请检查下面

我的应用程序使用触摸ID,但如果用户尚未启用,我当前会要求他们手动打开设置应用程序并向下滚动到触摸ID项目

有没有办法从我的应用程序中直接将它们链接到下面显示的触摸ID设置页面

(请注意,我不想在顶层打开设置应用程序,也不想按中所述打开应用程序的本机设置页面。)

Cordova插件将是理想的,但任何iOS系统调用的文档都将是很好的


遗憾的是,无法打开触摸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模块中的代码相同。该代码在我的案例中不起作用。可以,您详细说明。在我的案例中不起作用。可以,您详细说明