2015-10-19 69 views
1

我在Info.plist文件這些行:NSAppTransportSecurity UIWebView的問題

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>mysebserver.com</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <key>NSTemporaryExceptionMinimumTLSVersion</key> 
       <string>TLSv1.1</string> 
      </dict> 
     </dict> 
    </dict> 

因此,它完美的作品與我的API調用。

在我的視圖控制器我有一個UIWebView試圖顯示網頁內容:

NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.webSiteUrlSting] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30]; 

[self.theWebView loadRequest:request]; 

上iOS7和iOS8上它的偉大工程,但iOS9它顯示調用UIWebView的委託- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error後的錯誤:

應用傳輸安全已阻止明文HTTP(http://)資源 加載,因爲它是不安全的。臨時例外可以通過 您的應用程序的Info.plist文件進行配置。

委託方法包含錯誤的實例,看起來像這樣:

錯誤域= NSURLErrorDomain代碼= -1022「的資源無法被 加載,因爲應用程序傳輸安全策略需要使用的 安全連接。「 UserInfo = {NSUnderlyingError = 0x7fbaa253ba20 {錯誤 域= kCFErrorDomainCFNetwork代碼= -1022「由於應用傳輸安全策略要求使用 安全連接,因此加載的資源不能爲 。」 的UserInfo = {NSErrorFailingURLStringKey = requestedwebsite.com, NSLocalizedDescription =因爲 應用傳輸安全策略需要使用安全 連接的資源無法加載, NSErrorFailingURLKey = requestedwebsite.com}}, NSErrorFailingURLStringKey = requestedwebsite。 COM, NSErrorFailingURLKey = requestedwebsite.com, NSLocalizedDescription =因爲 應用傳輸安全策略需要使用安全 連接的資源無法加載。}

我的問題是如何保持我的API請求工作,並使UIWebView工作。

回答

3

NSAppTransportSecurity字典添加此異常:

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

似乎它的工作原理謝謝 –