WKWebView 打開新標簽(新窗口),無反應(yīng)
今天在做一個項目時發(fā)現(xiàn)陆馁,一個網(wǎng)頁點擊跳轉(zhuǎn)到m站,沒反應(yīng)合愈。
PC瀏覽器是正常運行的叮贩,不過會打開新標簽击狮。也就是js中使用了window.open()代碼。
問題定位到益老,查看WKWebView的UIDelegate中的方法彪蓬。
發(fā)現(xiàn)- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures符合要求,大概意思是創(chuàng)新新的webview會回調(diào)到這個方法里捺萌。
#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;