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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,但这是不可变的。

任何帮助将不胜感激。

答案

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

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

以上是关于WKWebView将查询参数添加到点击的链接的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 在多个 div 中创建查询选择器?

WKWebview:从菜单中删除复制、查找、共享按钮并显示自定义

如何让 WKWebView 像 SFSafariViewController 一样全屏显示?

从用户点击 Swift 将图像添加到 UIImageView

为啥即使在 WKWebView 中设置 cookie 后 SSO 也不起作用?

WKWebView - 获取html表单的查询参数