在IOS 10.1 中加载UIWebView
中的某个网址时,它会失败
错误域= NSURLErrorDomain代码= -1200“发生SSL错误,无法与服务器建立安全连接”
然而,相同的webview在iOS 10.2中加载
如果我使用NSAllowsArbitraryLoads = YES
,我可以在10.1和10.2中加载网址,但只能在10.2中加载NSAllowsArbitraryLoadsInWebContent = YES
我使用nscurl --ats-diagnostics
测试了网址,并通过了所有测试
我认为这个问题可能与网页中的ip位置验证有关。
在处理应用传输安全设置时,10.1和10.2之间是否存在差异?这些记录了吗?
----编辑-----
我设法通过查看didFailLoadWithError中的错误来解决我的问题。这告诉我究竟是什么导致失败的网址。我使用 NSExceptionRequiresForwardSecrecy = NO(使用ats诊断确定)将此网址添加到我的异常域
这解决了我的问题,但我仍然想了解两个版本10.1& 10.2。
答案 0 :(得分:3)
是的,即使使用NSAllowsArbitraryLoadsInWebContent
密钥,早期版本的iOS 10仍然会在Web视图中强制实施应用传输安全性的前向保密要求。这是一个错误,由Apple修复。问题是早期版本的iOS附带了这个bug,所以你必须能够处理它,如果你不知道你可以导航到的Web的所有可能的URL,这是不可能的。这可能是Apple延长启用应用传输安全性和提交到App Store的所有应用的截止日期的部分原因。