美文网首页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