WKWebView新窗口打開鏈接


最近客戶說在App中點擊鏈接打不開頁面,安卓的可以iOS不行,對於這個問題,設置wkwebview即可

點擊打開測試鏈接

  1. 需要監聽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;
    }
    

    解決了新窗口打開的問題

  2. 以為已經沒問題了,誰知道測試說有新的問題,上面測試連接中的開始閱讀沒反應,查看詳情可以點擊。查看網頁源代碼,發現開始閱讀是調了接口的,在請求完成時用window.open(./xxx)新窗口中打開,而查看詳情是直接拼接的url。剛開始因為是接口的問題,想着怎么自己寫個頁面測試一下,后來在地鐵上查到了另外一個方法

    WKPreferences *preferences = [[WKPreferences alloc] init];
    preferences.javaScriptCanOpenWindowsAutomatically = YES;
    config.preferences = preferences;
    

    設置javaScriptCanOpenWindowsAutomatically屬性允許js打開新窗口

完美解決WKWebView打開新窗口的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM