2015-10-06 49 views
0

我有webview工作正常的版本少於ios9,但似乎不適用於ios9,它顯示我一個空白頁面,但URL傳遞。IOS9和uiwebview的問題?

+0

其工作正常,但花時間打開網頁。一旦更新你的代碼。 –

+0

在iOS 9中,蘋果默認拒絕所有不使用TLS 1.2的連接。這很可能是你的問題。您應該閱讀iOS 9發行說明並進行調查。如果它有可能升級服務器(如果它在你的控制下) –

+0

@Uma我的等待很長時間後它甚至不能開啓。 –

回答

1

要配置每個域的例外,以便您的應用可以連接到不安全的(或不支持TLSv1.2的安全主機),請將這些密鑰添加到Info.plist中(並注意Xcode沒有目前自動完成這些鍵作爲第一Xcode的7測試版種子):

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
    <key>yourserver.com</key> 
    <dict> 
     <!--Include to allow subdomains--> 
     <key>NSIncludesSubdomains</key> 
     <true/> 
     <!--Include to allow HTTP requests--> 
     <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
     <true/> 
     <!--Include to specify minimum TLS version--> 
     <key>NSTemporaryExceptionMinimumTLSVersion</key> 
     <string>TLSv1.1</string> 
    </dict> 
    </dict> 
</dict> 

還有其他的按鍵,你可以用它來配置應用程序傳輸安全爲好,如:

NSRequiresCertificateTransparency 
NSTemporaryExceptionRequiresForwardSecrecy 
NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads 
NSTemporaryThirdPartyExceptionMinimumTLSVersion 
NSTemporaryThirdPartyExceptionRequiresForwardSecrecy 

對於您可以按照以下圖片所示進行演示:

enter image description here

但如果我不知道這一切不安全的域名,我需要使用?

如果您的應用程序(第三方web瀏覽器,例如)需要加載任意內容,蘋果公司提供了一種完全禁用ATS,但我懷疑這是明智的,你要使用此功能謹慎:

<key>NSAppTransportSecurity</key> 
<dict> 
    <!--Include to allow all connections (DANGER)--> 
    <key>NSAllowsArbitraryLoads</key> 
     <true/> 
</dict> 

你可以找到它的技術說明Here

+0

感謝您的建議! –

0

您可能要檢查更新網址和渲染頁面的順序。在ios9中,即使直接爲其分配值,url也不會立即更改。

所以你可以嘗試設置一個超時等待url更新。

updateUrl(); 
window.setTimeout(function(){ 
    renderPage(); 
},30); 

有時將超時設置爲0會做伎倆,因爲它會強制代碼在下一個事件循環中運行。

+0

謝謝你的建議! –