Swift UIWebView 和 WKWebView

本文详细介绍了iOS中UIWebView和WKWebView的使用方法,包括如何监听加载状态、获取URL及Title等,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


UIWebView使用方法:

(1)获取加载页面的Url地址,加载开始,加载完成,加载失败的监听

让当前的ViewController实现UIWebViewDelegate代理然后实现代理中的方法:
//使用UIWebView代理方法
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        print(request.URL)
        if request.URL!.absoluteString.hasPrefix("app://") {
            //解析app://report?userId=0001逻辑
            return false
        }
        return true
    }
    func webViewDidStartLoad(webView: UIWebView) {
    //开始加载
         //activityLoadingView.startAnimating()
        // print(self.artworkWebView.request?.URL?.absoluteString)
    }
    func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
    //加载失败
       
    }
    func webViewDidFinishLoad(webView: UIWebView) {
    //加载成功,加载完成
       // activityLoadingView.stopAnimating()
        
    }

别忘了在viewDidLoad()方法中设置

 ziXunWebView.delegate =self

WKWebView使用方法:

导入包

import WebKit

实现代理WKUIDelegate,WKNavigationDelegate,WKScriptMessageHandler

如果不用到js交互,第三个代理WKScriptMessageHandler可以不用实习

实现代理方法:

    

// WKWebView的代理方法

    func userContentController(userContentController:WKUserContentController, didReceiveScriptMessage message:WKScriptMessage) {

      

    }

    func webView(webView:WKWebView, didStartProvisionalNavigation navigation:WKNavigation!) {

        //开始加载

        

    }

    func webView(webView:WKWebView, didFinishNavigation navigation:WKNavigation!) {

        //加载完成

       

    }

    overridefunc didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

  


WKWebView获取当前网页的url:

func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction:WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) ->Void) {

        //var url:NSURL = navigationAction.request.URL!;

        //var urlstring:NSString = url.absoluteString

       

        var urlString:NSString! = navigationAction.request.URL?.absoluteString

        

       /*

        if (navigationAction.navigationType == WKNavigationType.LinkActivated && !navigationAction.request.URL!.host!.lowercaseString.hasPrefix("http://app.manyiaby.com/")) {

            print("fefe")

            UIApplication.sharedApplication().openURL(navigationAction.request.URL!)

            decisionHandler(WKNavigationActionPolicy.Cancel)

        } else {

            decisionHandler(WKNavigationActionPolicy.Allow)

        }

     */

       decisionHandler(WKNavigationActionPolicy.Allow)//一定要加上这一句代码不然会出异常

    }


获取wkWebView获取当前的title:

http://www.cnblogs.com/tangyuanby2/p/5377213.html

别忘了在viewDidLoad()方法中设置

 ziXunWebView.delegate = self

参考:

http://www.jianshu.com/p/8f6d527f13bc

http://blog.youkuaiyun.com/zhaoweixing1989/article/details/13021513

参考:

http://www.jianshu.com/p/d29384454a9a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值