如何在 iOS webview 的多个页面中注入/评估 JS?
Posted
技术标签:
【中文标题】如何在 iOS webview 的多个页面中注入/评估 JS?【英文标题】:How to inject/evaluate JS in multiple pages of an iOS webview? 【发布时间】:2020-02-07 15:14:13 【问题描述】:好像android的WebViewClient有这样的方法:onProgressChanged()
ios 的 wkwebview 有什么用吗? (或任何其他 iOS 网络视图)
Webview 的 onNavigationStateChange
在这里似乎没有帮助。
想在www.example.com
和www.example.com/about
上评估 JS。
【问题讨论】:
【参考方案1】:onNavigationStateChange
到底是什么意思?这对我来说听起来并不熟悉。
您应该实现 WKNavigationDelegate。 [https://developer.apple.com/documentation/webkit/wknavigationdelegate]。
如果你想在加载一个url后加载JS,你可以实现webView(_, didFinish: WKNavigation)
。 WKNavigation 提供 api 来检查请求/url。
要在导航完成之前加载一些 JS,您可以尝试使用 webView(WKWebView, decidePolicyFor: WKNavigationAction)
[https://developer.apple.com/documentation/webkit/wknavigationdelegate/1455641-webview]
或webView(WKWebView, decidePolicyFor: WKNavigationResponse)
[https://developer.apple.com/documentation/webkit/wknavigationdelegate/1455643-webview]。
【讨论】:
【参考方案2】:请参阅专门为此目的设计的WKUserScript。在创建 WKWebView 时,会添加一个 WKUserContentController,它可以使用addUserScript
添加脚本。
【讨论】:
我尝试添加多个 userScript 但不起作用,它是替换 userScript,而不是添加更多以上是关于如何在 iOS webview 的多个页面中注入/评估 JS?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在android上有一个webview,我可以在页面加载之前注入css?
如何在 Android Webview 中加载网页之前注入 javascript?
尝试使用 highcharts 将数据点注入 iOS webView