无法在iOS 9中的UIWebView中加载HTTP链接

时间:2015-09-21 08:41:23

标签: ios uiwebview ios9 xcode7 nsapptransportsecurity

我正在尝试在UIWebView中加载HTTP链接。链接来自我的网站,因此它们是可靠的。我在互联网上搜索并找到了解决方案:How can I add NSAppTransportSecurity to my info.plist file?

在遵循该解决方案后,我的info.plist看起来像这样。:

enter image description here

即使进行了更改,我也无法在UIWebView中加载HTTP链接。我收到以下错误:

App Transport Security阻止了明文HTTP(http://)资源加载,因为它不安全

我做错了吗?

更新:

在评论中做出Ramshad建议的更改之后,它仍然不起作用。 见下图:

enter image description here

6 个答案:

答案 0 :(得分:13)

应该这样做,你需要在你的Plist中添加以下记录 Apple Documentation

NSAppTransportSecurity< - 类型字典

NSAllowsArbitraryLoads< - 类型布尔值YES

enter image description here

答案 1 :(得分:3)

您可以尝试添加所有内容,而不使用“http://”:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>mydomain.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>                
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

答案 2 :(得分:2)

enter image description here

试试这个,这应该可以解决您的问题

答案 3 :(得分:0)

你试过这个吗?

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>www.mydomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.0</string>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

答案 4 :(得分:0)

我认为您拼错了链接或域名。

我遇到了同样的问题,在再次检查123.company.othercompany.com的域名后,我将company.com更改为othercompany.com,然后开始加载外部网站。

答案 5 :(得分:0)

查看本文:link

  

应用传输安全性(ATS)通常不允许我们的应用连接到HTTP服务器,但是您可以添加一个特殊的例外,以允许UIWebView和WKWebView加载不安全的内容。

TL; DR

只需添加到您的.plist文件中即可:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

NSAllowsArbitraryLoadsInWebContent在iOS 9.0中可用,因此适合您。