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

11
我正在尝试在UIWebView中加载HTTP链接。这些链接来自我的网站,因此它们是可靠的。我在互联网上搜索并在此找到了解决方案:如何将NSAppTransportSecurity添加到我的info.plist文件中? 按照该解决方案后,我的info.plist看起来像这样:

enter image description here

即使我做出了更改,也无法在UIWebView中加载HTTP链接。 我收到以下错误消息: 应用程序传输安全性阻止明文HTTP(http://)资源加载,因为它不安全 我做错了什么吗? 更新: 按照Ramshad在评论中建议的更改后,它仍然无法正常工作。 请参见下面的图片:

enter image description here


https://forums.developer.apple.com/thread/3544 - Shamsudheen TK
@Ramshad,请查看更新。 - Skywalker
我也遇到了同样的问题,有什么更新可以解决吗? - ewindsor
@ewindsor,请看一下我在这个问题上的答案,但请注意这将允许所有连接。但这是我能让它工作的唯一方法。http://stackoverflow.com/questions/33011558/no-solution-for-transport-security/33011914#33011914 - Skywalker
6个回答

17

应该像这样做,您需要在您的Plist文件中添加以下记录 Apple文档

NSAppTransportSecurity <- 类型为字典(Dictionary)

NSAllowsArbitraryLoads <- 类型为布尔值(Boolean),值为YES

输入图像描述


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

enter image description here

尝试这个,这应该可以解决你的问题。

谢谢您的回复。请查看我的更新问题。我已经尝试过这个方法,但对我无效。 - Skywalker

2

请查看这篇文章:链接

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

TL;DR

只需在 .plist 文件中添加以下内容:

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

NSAllowsArbitraryLoadsInWebContent自iOS 9.0起可用,因此对您来说应该没有问题。


0

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

我曾经遇到过同样的问题,再次检查域名是123.company.othercompany.com,所以我将company.com更改为othercompany.com,然后它开始加载外部网站。


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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接