WKWebView将查询参数添加到点击的链接

时间:2019-10-29 10:25:43

标签: ios swift wkwebview

我的应用程序中有一个WKWebView,它会打开一些网页。这些网页中有链接。如果用户点击任何链接,我需要在网址中添加一个参数,例如如果点击的网址为https://google.com,则应将其修改为https://google.com?query=xyz,并继续导航。

我看过WKNavigationDelegate,有一种方法

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler API_AVAILABLE(macos(10.15), ios(13.0));

此方法返回导航操作,该操作包含URLRequest中被点击的链接URL,但这是不可变的。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

decidePolicyForNavigationAction中,您可以检查Web视图试图加载的URL。如果该URL不包含您要查询的内容,则可以通过调用decisionHandler(.cancel)来取消导航,创建一个新URL并追加所需查询,然后在查询中加载新URL。

这将再次启动导航,但是现在当您检测到URL包含查询时,您将不会取消导航。