2015-10-16 84 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

相關問題