关于WKWebView 加载网页 点击link不会跳转的解决方案

最近一个项目,为了尝鲜,就抛弃了iOS7,最低兼容iOS8 项目中的UIWebView 也换成WKWebView了,使用起来就是输入,再也不用担心进度条了,可是,偶然间却发现部分网页里面的 "a"标签点击没反应, 后来发现 这些不会跳转的link 都有一个共同点,那就是跳转方式

 都为<a href = "xxx" target = "_black">

原来 "_black" 是开一个新的页面 打开网页,就像safari中弹出一个新的页面显示一样 但是在项目中我们并没有让他打开一个新的页面,所以就会导致点击没反应 解决方法也很简单,判断如果不是在本页面打开 就重新 load一下 也可以 调用safari打开

在 WKWebView的代理方法中 加入面的判断即可

-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
    //如果是跳转一个新页面
    if (navigationAction.targetFrame == nil) {
        [webView loadRequest:navigationAction.request];
    }
   
    decisionHandler(WKNavigationActionPolicyAllow);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容