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。但是这个就需要等页面加载完成才能调用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容