通过
CustomChromeClient client = new CustomChromeClient("jsBridge", WebCallJsfunction.class)
为 webview 中的 window 全局对象添加了 jsBridge 属性,但是在 webview 加载的网页 js 中通过 window.jsBridge 访问到的是 undefined, 经过排查发现, 必须要延迟一段时间才能获取到:
setTimeout(() => {
window.jsBridge
}, 100)
我的猜想是 java 中定义的方法 WebCallJsFunction.class 和页面加载的 js 是同时执行的,页面刚加载的时候 java 代码还没有执行完毕, 所以才会这样, 请问我的猜测正确吗? 有什么好的解决方案吗?