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将查询参数添加到点击的链接的主要内容,如果未能解决你的问题,请参考以下文章
WKWebview:从菜单中删除复制、查找、共享按钮并显示自定义
如何让 WKWebView 像 SFSafariViewController 一样全屏显示?
从用户点击 Swift 将图像添加到 UIImageView