2

我正在 WebView 中加载网页并尝试订阅 JS 事件。例如,假设我正在寻找窗口“加载”事件。

我在其中配置 webview onFinishInflate

webView.setJavaScriptEnabled(true);
webView.loadUrl("javascript:window.addEventListener('load', function(){alert('loaded');})");

我假设此注册在页面导航中持续存在,并且可以在实际加载任何页面之前进行(由于在 上完成window)。

加载之后的任何 url 时,例如webView.loadUrl("https://www.google.com"),不显示任何警报。

我还尝试在 Web 视图客户端的onPageStarted&中将该 javascript 字符串作为 url 加载onPageFinished。没有不同。

是否可以订阅 Web 视图的窗口事件?最终,我计划在@JavascriptInterfaceJS 事件发生时使用该模式回调到本机代码。我想避免让网页本身知道注入的 Java/JS 对象(在调用它的方法之前必须验证这个桥对象的存在似乎很草率——我在这里找到了事件总线模式清洁器)。

4

0 回答 0