webview中的App传输安全问题

时间:2015-11-25 11:52:22

标签: ios objective-c swift uiwebview ios9

我正在尝试在webview中显示http url并且我得到ATS错误。

NSURL *url=[NSURL URLWithString:@"http://stackoverflow.com"];
[_webview loadRequest:[NSURLRequest requestWithURL:url]];

App Transport Security已阻止明文HTTP(http://)资源加载,因为它不安全。可以通过应用程序的Info.plist文件配置临时例外。

我在info.plist中添加了 NSExceptionAllowsInsecureHTTPLoads 异常。但我仍然得到错误。

注意:遗憾的是,我无法在我的应用中禁用ATS,因为应用程序中使用的所有Web服务都是TLS1.2并具有前向保密性。

我可以在webview中绕过ATS吗?

期待有关该主题的任何建议。

4 个答案:

答案 0 :(得分:1)

您需要将域添加到plist中作为例外,以下是如何执行此操作的示例:

enter image description here

答案 1 :(得分:1)

您可以将信息丢失到文件Info.plist中 image with information

答案 2 :(得分:1)

我假设您要允许Web视图访问任何,因此您允许不安全访问的例外域列表不起作用。

通过允许任意加载,然后将服务器指定为例外,您可以将通常的ATS“允许所有内容”或“选择退出此类”例外,如“为您使用ATS中所述服务器和允许其他地方的不安全连接“ here

基本上,您允许任意加载,但随后将您自己的域添加为例外。然后,对这些域的访问将遵守ATS规则。

答案 3 :(得分:0)

我在这里的问题上有这个答案:

NSAppTransportSecurity UIWebView issue

它对我有帮助,但我不确定这是否只有一个解决方案。