美文网首页
WKWebView处理js打开新标签(新窗口)

WKWebView处理js打开新标签(新窗口)

作者: FateOfKing | 来源:发表于2019-10-16 09:45 被阅读0次

在开发中我偏向使用WKWebView,因为他更加轻量级,有更好的性能。
今天在做一个项目时发现,一个网页点击后没反应。
PC浏览器是正常运行的,不过会打开新标签。也就是js中使用了window.open()代码。
问题定位到,查看WKWebView的UIDelegate中的方法。
发现- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures符合要求,大概意思是创新新的webview会回调到这个方法里。
最终处理代码如下,如果有新标签页就在当前webView网页打开相应链接。

- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures{
    if (navigationAction.request.URL) {
        
        NSURL *url = navigationAction.request.URL;
        NSString *urlPath = url.absoluteString;
        if ([urlPath rangeOfString:@"https://"].location != NSNotFound || [urlPath rangeOfString:@"http://"].location != NSNotFound) {
            
            [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlPath]]];
        }
    }
    
    return nil;
}

相关文章

  • WKWebView处理js打开新标签(新窗口)

    在开发中我偏向使用WKWebView,因为他更加轻量级,有更好的性能。今天在做一个项目时发现,一个网页点击后没反应...

  • 谷歌浏览器快捷键

    快捷键 Ctrl +N 打开新窗口 Ctrl +T 打开新标签页 Ctrl +Shift+N 隐身模式打开新窗口 ...

  • Chrome浏览器快捷键大全-mac

    标签页和窗口快捷键 操作快捷键打开新窗口⌘ + n在无痕模式下打开新窗口⌘ + Shift + n打开新的标签页,...

  • 浏览器快捷键mac

    command + L 选中urlcommand + T 打开新标签页command + N 打开新窗口comma...

  • Chrome快捷键(mac)

    窗口和标签页快捷键: Cmd+N 打开新窗口 Cmd+T 打开新标签页 Cmd+Shift+N 在隐身模式下打开新...

  • chrome快捷键

    chrome窗口和标签页快捷键 Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shi...

  • chrome快捷键

    chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N ...

  • Google 浏览器快捷键整理

    一、Chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+...

  • 谷歌浏览器快捷键

    Ctrl+N 打开新窗口。Ctrl+T 打开新标签页。Ctrl+W关闭当前标签Ctrl + F4 关闭chrome...

  • chrome 常用快捷键

    Ctrl+N 打开新窗口。 Ctrl+T 打开新标签页。 Ctrl+W关闭当前标签 Ctrl + F4 关闭chr...

网友评论

      本文标题:WKWebView处理js打开新标签(新窗口)

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