您的位置:首页 > 移动开发 > Swift

Swift - 网页控件(UIWebView)加载网页,本地数据,文件

2016-06-21 13:31 661 查看


使用UIWebView加载本地数据或资源有如下三种方式:

1,使用 loadHTMLString 方法加载HTML内容

2,使用 loadRequest 方法加载本地资源(也可用于加载服务器资源)

3,先将内容保存成 NSData 数据,再使用 loadData 方法加载

代码如下:

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>
之前添加如下代码即可:

[objc] view
plain copy

<key>NSAppTransportSecurity</key>    

<dict>    

   <key>NSAllowsArbitraryLoads</key>    

   <true/>    

</dict>   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: