App Transport Security已被阻止 - ios

时间:2015-10-16 06:44:33

标签: ios swift swift2

我正在使用Swift为ios创建应用程序。我的Xcode version 7.0.1. 基本上我想在UIWebView和社交媒体集成(Facebook)中显示一些网页并显示一个FaceBook页面。我在Info.plist文件中使用了以下项目。

<key>NSAppTransportSecurity</key>
        <dict>
            <!--Include to allow all connections (DANGER)-->
            <key>NSAllowsArbitraryLoads</key>
            <true/>
            <key>NSExceptionDomains</key>
            <dict>
                <key>facebook.com</key>
                <dict>
                    <key>NSIncludesSubdomains</key> <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
                </dict>
                <key>fbcdn.net</key>
                <dict>
                    <key>NSIncludesSubdomains</key> <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  <false/>
                </dict>
                <key>akamaihd.net</key>
                <dict>
                    <key>NSIncludesSubdomains</key> <true/>
                    <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
                </dict>
            </dict>
        </dict>

现在FaceBook共享(集成)工作。显示工作但显示Facebook页面的网页无效。它显示为空。我正面临以下错误:

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

最初我对每个webview都有这个问题。我在Google中搜索此错误然后我发现我需要在我的.plist文件中添加上述代码。之后我完成了那个工作FaceBook页面的其他页面无效。

注意:我正在从Localizable.strings文件中读取Facebook链接。

 var url = NSLocalizedString("facebook_link", comment: "");
let requestURL = NSURL(string:url)
        let request = NSURLRequest(URL: requestURL!)
        webView.loadRequest(request)

2 个答案:

答案 0 :(得分:2)

如果你想禁用ATS,你可以使用它:

<key>NSAppTransportSecurity</key>  
 <dict>  
      <key>NSAllowsArbitraryLoads</key><true/>  
 </dict>

但是根本不建议这样做。服务器应该具有SSL证书,因此没有隐私泄露。

您必须在info.plist文件的NSAppTransportSecurity字典中将NSAllowsArbitraryLoads键添加到YES。

例如,

 <key>NSAppTransportSecurity</key>
 <dict>
      <key>NSAllowsArbitraryLoads</key>
     <true/>
 </dict>

enter image description here

答案 1 :(得分:0)

我找到解决方案我正在做的是首先尝试从Localizable.strings获取链接

哪个不行。但是,一旦我稍微更改了我的代码,它就可以了

var url = "my facebook link"//NSLocalizedString("facebook_link", comment: "");
let requestURL = NSURL(string:url)
        let request = NSURLRequest(URL: requestURL!)
        webView.loadRequest(request)

我不知道发生了什么。但问题已解决。