class ViewController: UIViewController,UIWebViewDelegate { //遵守代理协议
override func viewDidLoad() {
super.viewDidLoad()
//调用
addwenview()
}
//加载网页到view的方法
func addwenview() {
let webview = UIWebView(frame:UIScreen.mainScreen().bounds )
let Requst = NSURLRequest(URL: NSURL(string: "https://www.baidu.com")!)
view.addSubview(webview)
webview.loadRequest(Requst)
webview.delegate = self //设置代理为本控制器
}
func webViewDidStartLoad(webView: UIWebView) {
//连接网络时,显示系统自带的联网小菊花
print("开始加载调用")
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}
func webViewDidFinishLoad(webView: UIWebView) {
print("加载完成调用")
//加载完成关闭联网小菊花
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("加载失败调用")
//加载失败了,我们可以创建一个按钮来重新加载,来重新调用 addwenview()方法
//或者提醒用户检查联网状态
//或者直接跳转到系统网络设置
//或者坐一些其它处理
}
}
如果出现类似错误: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
原因:在 iOS9中,在网络通话中ATS强制采用最佳实践,包括使用HTTPS.
解决办法: 右击 Info.plist 文件 -> Open As > Source Code
然后在最后的</dict>之前添加如下代码即可:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
本文介绍如何在iOS应用中使用UIWebView加载HTTPS网页,并解决因ATS(App Transport Security)策略导致的加载失败问题。通过设置Info.plist文件中的NSAppTransportSecurity键值,允许UIWebView加载非完全安全的HTTPS资源。
1万+

被折叠的 条评论
为什么被折叠?



