我正在开发一个项目,我想将互联网 URL
加载到我的 UIWebView
我已经成功加载了一个本地存储的 html 文件,如下所示:
if let url = NSBundle.mainBundle().URLForResource("index", withExtension: "html") {
webView.loadRequest(NSURLRequest(URL: url))
}
基于此,我尝试这样做:
if let url = NSURL(string: "http://google.com") {
webView.loadRequest(NSURLRequest(URL: url))
}
但这似乎没有用。
最佳答案
Apple 在 iOS9 中引入了 App Transport Security。这是一项新的安全功能,可在处理 Web 请求时强制实现某些安全措施。例如,它不允许通过 HTTP 发送请求,因为它只允许 HTTPS 请求。好消息是,您可以通过将此添加到项目的 Info.plist 文件来覆盖这些安全要求:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
请注意,这会规避 ATS 附带的所有安全要求。 仅当确实没有其他方法时,才应在生产中使用它。如果您只访问 1 个非 HTTP url,则只能为该 1 个域禁用 ATS:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
关于swift - 将 Internet url 加载到 Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33497266/