美文网首页
WKWebView代理回调中的导航策略普及

WKWebView代理回调中的导航策略普及

作者: 风之谷等风来 | 来源:发表于2017-03-06 19:48 被阅读170次

    WKWebview出来之后,很多人都欢快的用上了,也包括本人在内,但是今天用的时候,发现在加载的网页上面进行二次跳转网页之后,内存会涨的很快,多点两个跑起来就快内存警告了,想了一次,还是调系统的Safari跳转比较妥当,但是怎么获取网页上这个按钮点击的事件呢,这个按钮本身就绑定了一个url,怎么让它点击之后当前的UIWebView不去load这个url呢。

    几经查询之后,发现UIWebView的协议里面有这么个方法,可以获取它加载的网页上面的事件,比如单击了图片,单击了按钮等等。

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType  {

    // 这里需要return一个值,决定是否跳转本次加载的页面

    }

    这里有个UIWebViewNavigationType的枚举,分别为这几项

    UIWebViewNavigationTypeLinkClicked,用户触击了一个链接。

    UIWebViewNavigationTypeFormSubmitted,用户提交了一个表单。

    UIWebViewNavigationTypeBackForward,用户触击前进或返回按钮。

    UIWebViewNavigationTypeReload,用户触击重新加载的按钮。

    UIWebViewNavigationTypeFormResubmitted,用户重复提交表单

    UIWebViewNavigationTypeOther,发生其它行为。

    最后处理:

    回调方法处理

    注意:最后一点要返回YES,否则UIWebView刚开始将一片空白,这是因为第一次加载的时候也是UIWebView请求一个链接,如果返回NO,就不会去加载了。还可以对url的内容进行判断,看是什么请求。

    相关文章

      网友评论

          本文标题:WKWebView代理回调中的导航策略普及

          本文链接:https://www.haomeiwen.com/subject/gdbugttx.html