ios - WKWebView向点击的链接添加查询参数

标签 ios swift wkwebview

我的应用程序中有一个 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/

相关文章:

ios - 核心数据错误:如果没有在范围内使用NSManagedObjectContext,则无法获取

swift - gamescene.swift 中的背景图像

javascript - 在后台线程中通过 Swift 更新 WKWebView 内容失败

cordova - 被释放的 Malloc 指针未分配 -- Ionic1 + cordova-plugin-wkwebview-engine

ios - 用户登录/注册 iOS 后,Firebase 出现观察问题

ios - 如何拦截 ios WKWebView 上的所有 http(s) 请求?

ios - RN 从 IOS 中的 URL 获取 blob 下载 docx 或 pdf

ios - 如何在 ffmpeg 中使用 librtmp?

ios - Swift:点击一个单元格时更改所有 UITableViewCells 的文本颜色

ios - 使用 UITableView 中单元格中的文本