2015-10-16 51 views
-1

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

<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> 

Now FaceBook share(integration)working。显示工作但显示Facebook页面的网页不起作用。它显示为空。并且我面临以下错误:

由于传输安全性不安全,因此App Transport Security阻止了明文HTTP(http://)资源加载。临时例外可以通过您的应用程序的Info.plist文件进行配置。

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

注意:我正在阅读像这样的Localizable.strings文件的Facebook链接。

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

检查此问题.http://stackoverflow.com/questions/31254725/transport-security-has-blocked-a-cleartext-http/32560433#32560433 –

+0

我有这个。 NSAllowsArbitraryLoads。这还不够吗?我对ios很新。对不起,如果我的问题是错误的 – Amsheer

回答

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) 

我不知道发生了什么事。但问题修复。

+0

这意味着您的问题与App Transport Security完全无关。真正的问题是,'NSLocalizedString(“facebook_link”,comment:“”)'不会返回你认为它的作用。 –

+0

我也认为相同,但它显示这样的错误。我完全想知道ios对此不太了解。 – Amsheer

+1

您至少应该使用相关信息更新您的问题:您在Localizable.strings中对“facebook_link”键有什么条目,以及NSLocalizedString()的返回值是什么。没有这些信息,没有人能够理解或回答你的问题,这个问答对未来的读者来说毫无价值。 –

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

+0

我有这个。 NSAllowsArbitraryLoads 。这还不够吗?我对ios很新。对不起,如果我的问题是错误的 – Amsheer

+0

雅是足够的,它通过HTTPS加载所有HTTP,你正在打开你的用户设备到漏洞 –

+0

我已经添加这在我的.plist文件。请检查我的问题。 – Amsheer