这是我的问题,我想调用Java方法,如window.jsBridge,它是通过以下方式在Java中定义的:
CustomChromeClient client = new CustomChromeClient(
"jsBridge", WebCallJsFunction.class);
mWebView.setWebChromeClient(client);
mWebView.loadUrl("file:///android_asset/test.html");
并在我的html中:
<body>
</script>
document.write(window.jsBridge.getSomething())
</script>
</body>
该页面将不显示任何内容,因为window.jsBridge是未定义的,但是如果我将其更改为:
setTimeout(() => {
document.write(window.jsBridge.getSomething())
}, 500)
页面将写入正确的内容。我猜想原因是Java方法mWebView.setWebChromeClient(client)
与text.html中的js同时执行 ,并且当JS运行时:document.write(window.jsBridge.getSomething())
然后是Java代码未执行完毕,对吗?那么如何解决这个问题呢?