通过
CustomChromeClient client = new CustomChromeClient("jsBridge", WebCallJsfunction.class)
为 webview 中的 window 全局对象添加了 jsBridge 属性,但是在 webview 加载的网页 js 中通过 window.jsBridge 访问到的是 undefined, 经过排查发现, 必须要延迟一段时间才能获取到:
setTimeout(() => {
window.jsBridge
}, 100)
我的猜想是 java 中定义的方法 WebCallJsFunction.class 和页面加载的 js 是同时执行的,页面刚加载的时候 java 代码还没有执行完毕, 所以才会这样, 请问我的猜测正确吗? 有什么好的解决方案吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.