最近客戶說在App中點擊鏈接打不開頁面,安卓的可以iOS不行,對於這個問題,設置wkwebview即可
-
需要監聽WKUIDelegate中的代理方法,
webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
,代理方法會在webview中的新窗口打開時調用- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures { if (navigationAction.request.URL) { [self.webView loadRequest:[NSURLRequest requestWithURL:navigationAction.request.URL]]; } return nil; }
解決了新窗口打開的問題
-
以為已經沒問題了,誰知道測試說有新的問題,上面測試連接中的開始閱讀沒反應,查看詳情可以點擊。查看網頁源代碼,發現開始閱讀是調了接口的,在請求完成時用
window.open(./xxx)
新窗口中打開,而查看詳情是直接拼接的url。剛開始因為是接口的問題,想着怎么自己寫個頁面測試一下,后來在地鐵上查到了另外一個方法WKPreferences *preferences = [[WKPreferences alloc] init]; preferences.javaScriptCanOpenWindowsAutomatically = YES; config.preferences = preferences;
設置
javaScriptCanOpenWindowsAutomatically
屬性允許js打開新窗口
完美解決WKWebView打開新窗口的問題。