美文网首页自己看的文章iOS日常bug
WKWebView系列--点击按钮无反应

WKWebView系列--点击按钮无反应

作者: JQWONG | 来源:发表于2019-08-13 15:59 被阅读0次
问题
  • App中有个一webview,点击里面的按钮没有反应
分析
  • 确定是App问题还是web的问题
    因为之前用UIWebView现在转为WKWebvView,先看看UIwebView是否正常跳转
    经检验UIWebView可以正常跳转,可以排除web的问题,定位到App中
  • 是否代理方法有问题

    点击按钮,没进第一个断点,只在第二个断点
    网上搜索WKWebvView点击按钮无反应,能找到解决方案,但是没有过多解释,先尝试一下

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    if ([webView.URL.absoluteString containsString:@"crowdrise"]) {
        [[UIApplication sharedApplication] openURL:webView.URL];
    }
    if (navigationAction.targetFrame == nil) {
        [webView loadRequest:navigationAction.request];
    }  else {
        decisionHandler(WKNavigationActionPolicyAllow);
        return;
    }
    decisionHandler(WKNavigationActionPolicyCancel);
}

可以解决问题,但是并不懂其中原理,继续查找资料
有资料说是因为html源码中有一个可点击的标签带有target='_blank'就会导致WKWebView无法加载点击后的网页的问题

验证

用Safari对webview进行调试,html源码的确有`target='_blank'
验证完成


描述
target=' _blank' 在新窗口中打开被链接文档
target='_self' 默认 在相同的框架中打开被链接文档
target='_parent' 在父框架集中打开被链接文档
target='_top' 在整个窗口中打开被链接文档
target='framename' 在指定的框架中打开被链接文档
如何用Safari调试webview
  • 在Safari中调出开发菜单
    偏好设置---高级

  • 选择调试设备
    如果真机调试需要打开JavaSscriptWeb检查器

  • 选择调试的页面
    选中的页面会呈现选中的状态
    弹出网页检查器即可调试webview



参考
https://blog.csdn.net/u012265444/article/details/79070742
尊重原创,谢谢!
未经授权请勿转载!

相关文章

网友评论

    本文标题:WKWebView系列--点击按钮无反应

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