IOS9和uiwebview的问题?

我有webview工作正常版本less于ios9,但似乎不工作的ios9,它显示我一个空白页面,但url传递。

要configuration每个域的例外,以便您的应用程序可以连接到不安全的(或不支持TLSv1.2的安全主机),请将这些密钥添加到Info.plist中(并注意Xcode当前不自动完成这些键作为第一个Xcode 7 beta种子):

<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> 

您还可以使用其他键来configurationApp Transport Security,例如:

 NSRequiresCertificateTransparency NSTemporaryExceptionRequiresForwardSecrecy NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads NSTemporaryThirdPartyExceptionMinimumTLSVersion NSTemporaryThirdPartyExceptionRequiresForwardSecrecy 

为了说明你可以像下图所示那样做:

在这里输入图像说明

但是,如果我不知道我需要使用的所有不安全的域名?

如果您的应用程序(例如第三方Web浏览器)需要加载任意内容,Apple提供了一种完全禁用ATS的方法,但是我怀疑您谨慎使用此function是明智的做法:

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

你可以在这里find它的技术说明

你可能想要检查更新url和渲染页面的顺序。 在ios9中,即使您直接为其分配值,url也不会立即更改。

所以你可以尝试设置超时等待url更新。

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

有时将超时设置为0会做的伎俩,因为它强制代码在下一个事件循环运行。