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会做的伎俩,因为它强制代码在下一个事件循环运行。