Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c 在iOS上显示cordova自签名SSL证书(接受/拒绝)的警告对话框_Objective C_Cordova_Cordova Plugins - Fatal编程技术网

Objective c 在iOS上显示cordova自签名SSL证书(接受/拒绝)的警告对话框

Objective c 在iOS上显示cordova自签名SSL证书(接受/拒绝)的警告对话框,objective-c,cordova,cordova-plugins,Objective C,Cordova,Cordova Plugins,我正在开发一个cordova混合应用程序(本质上是一个web应用程序),它应该在iOS和Android上以同样的方式运行。该应用程序可以连接到用户拥有的多个不同服务器,因此我无法控制这些服务器上的安全/SSL/证书。由于用户可能希望在服务器上使用自签名证书进行测试,因此每当SSL握手失败时,应用程序应该能够显示警告并请求用户允许连接到“不安全”的服务器 在Android上,我通过在webViewClient上的OnReceivedSlerRor周围添加一些代码,并在发生这种情况时显示警告/确认对

我正在开发一个cordova混合应用程序(本质上是一个web应用程序),它应该在iOS和Android上以同样的方式运行。该应用程序可以连接到用户拥有的多个不同服务器,因此我无法控制这些服务器上的安全/SSL/证书。由于用户可能希望在服务器上使用自签名证书进行测试,因此每当SSL握手失败时,应用程序应该能够显示警告并请求用户允许连接到“不安全”的服务器

在Android上,我通过在webViewClient上的OnReceivedSlerRor周围添加一些代码,并在发生这种情况时显示警告/确认对话框,成功地做到了这一点。然而,我在iOS上遇到了麻烦,部分原因是我对这个平台不太熟悉

网络上的资源建议覆盖以下方法:

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
并返回true。但是,我真正想做的是,每当遇到SSL错误时,向用户显示一个对话框,并让用户决定是否继续。我尝试添加一些代码,在AllowsAnyHttpSceCertificateForHost中显示一个对话框,但这导致了以下问题:

  • 不知道连接的生命周期,因此我不知道该方法是仅在SSL错误时调用,还是始终在处理安全连接时调用
  • 由于没有在正确的线程上执行,代码无法运行
  • 添加了一个dispatch_async调用,使其在主UI线程上运行,解决了该问题,但现在警告来得太晚(即连接已失败)
  • 添加了一个dispatch_sync来解决上述问题,现在应用程序只是冻结
顺便说一下,我在cordova的config.xml中启用了任意加载(媒体/web内容)

任何关于如何解决此问题或编写示例的建议/指导都将非常受欢迎,因为我已经偶然发现了这一点很长一段时间。

Check out Check out