首页 > 解决方案 > WKWebView 将查询参数添加到点击的链接

问题描述

我的应用程序中有一个WKWebView可以打开一些网页。这些网页中有链接。如果用户点击任何链接,我需要向 url 添加一个参数,例如,如果点击的 url 是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));

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

任何帮助,将不胜感激。

标签: iosswiftwkwebview

解决方案


您可以在其中decidePolicyForNavigationAction检查 Web 视图尝试加载的 URL。如果 URL 不包含您想要的查询,您可以通过调用 取消导航decisionHandler(.cancel),创建一个新 URL 附加您需要的查询,并使用您的查询加载新 URL。

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


推荐阅读