WKWebView通過decidePolicyForNavigationAction獲取當前頁面url的問題

/// 1 在發送請求之前,決定是否跳轉
 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;

通過獲取navigationAction.request.URL是可以拿到當前webView。
但是里面有個問題,有些網站比如百度,是可以通過這個拿到正確的當前url;但是有些比如京東拿到的當前頁面url確是錯誤的。關于這一點還沒有搞明白?

E4I3AZ)C5LI9H_V26N0)}`S.png

比如這個網址,獲取出來的當前鏈接就變成這個了。這種看起來就像蘋果API自動給鏈接encode了。關于這個也像CTO請教過,由于他不搞蘋果開發,對于蘋果這個方法的處理機制不熟。只是說這個鏈接有點像廣告鏈接。如果有知道的大牛可以解釋下原因?

最后只能通過

    [self.webView evaluateJavaScript:@"document.location.href" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
        NSLog(@"%@ %@",response,error);
        self.nowUrl = response;
    }];

獲取當前頁面的url。但是這個就需要等頁面加載完成才能調用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容