WKWebView通过decidePolicyForNavigationAction获取当前页面url的问题

/// 1 在发送请求之前,决定是否跳转
 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;

通过获取navigationAction.request.URL是可以拿到当前webView。
但是里面有个问题,有些网站比如百度,是可以通过这个拿到正确的当前url;但是有些比如京东拿到的当前页面url确是错误的。关于这一点还没有搞明白?

WKWebView通过decidePolicyForNavigationAction获取当前页面url的问题_第1张图片
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。但是这个就需要等页面加载完成才能调用。

你可能感兴趣的:(WKWebView通过decidePolicyForNavigationAction获取当前页面url的问题)