簡體   English   中英

App Transport Security已被阻止-iOS

[英]App Transport Security has blocked - ios

我正在使用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)

如果要禁用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>

在此處輸入圖片說明

我發現解決方案我正在做的是首先我嘗試從Localizable.strings獲取鏈接

這不起作用。 但是,一旦我稍微更改了代碼,它就會起作用

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

我不知道發生了什么 但問題已解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM