美文网首页iOS开发点滴
WKWebView 打开新标签(新窗口),无反应

WKWebView 打开新标签(新窗口),无反应

作者: 今晚写bug | 来源:发表于2022-07-31 10:48 被阅读0次

WKWebView 打开新标签(新窗口),无反应

今天在做一个项目时发现,一个网页点击跳转到m站,没反应。
PC浏览器是正常运行的,不过会打开新标签。也就是js中使用了window.open()代码。

问题定位到,查看WKWebView的UIDelegate中的方法。
发现- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures符合要求,大概意思是创新新的webview会回调到这个方法里。

#pragma mark WKUIDelegate

- (WKWebView*)webView:(WKWebView*)webView
    createWebViewWithConfiguration:(WKWebViewConfiguration*)configuration
               forNavigationAction:(WKNavigationAction*)navigationAction
                    windowFeatures:(WKWindowFeatures*)windowFeatures {
  if (!navigationAction.targetFrame.isMainFrame) {
    [webView loadRequest:navigationAction.request];
  }

  return nil;
}
    webview.UIDelegate = self;

相关文章

网友评论

    本文标题:WKWebView 打开新标签(新窗口),无反应

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