我的应用程序中有一个 WKWebView
,它可以打开一些网页。这些网页中有链接。如果用户点击任何链接,我需要向 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));
此方法返回导航操作,其中包含 URLRequest
中点击的链接 URL,但这不是可变的。
如有任何帮助,我们将不胜感激。
最佳答案
在 decidePolicyForNavigationAction
中,您可以检查 Web View 尝试加载的 URL。如果 URL 不包含您想要的查询,您可以通过调用 decisionHandler(.cancel)
取消导航,创建一个新 URL,附加您需要的查询,并使用您的查询加载新 URL。
这将再次开始导航,但现在当您检测到该 URL 包含您的查询时,您将不会取消导航。
关于ios - WKWebView向点击的链接添加查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605547/