在网页加载到Webview后,Javascript调用java方法无法立即工作吗?

时间:2018-08-31 12:34:56

标签: javascript java webview

这是我的问题,我想调用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代码执行完毕,对吗?那么如何解决这个问题呢?

0 个答案:

没有答案