我正在使用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)
答案 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>
答案 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)
我不知道发生了什么。但问题已解决。