我已经实现了可重用的WebView。当我使用WebView时,我从池中获取WebView。使用后,清除WebView(重置设置,加载about:blank
并清除历史记录)并返回池中。
在我的代码中,我需要在OnPageStarted上调用一些j。
但是当我使用重复使用的WebView(当前显示about:blank
页面)来加载网址时,js有时会在about:blank
调用,而不是在我的页面调用。
我致电javascript:console.log(window.location.href)
,它显示about:blank
。这是否意味着当我在OnPageStarted上调用我的js时,DOM还没准备好?我应该什么时候打电话给我?
如何处理?
答案 0 :(得分:0)
在页面加载完成之前,不保证加载WebView中的JavaScript。 最好在onPageFinished中调用您的JavaScript。
或者,如果您使用的最小api为23,则可以使用onPageCommitVisible()。
答案 1 :(得分:0)
花了很多时间尝试在自己的应用程序中重现此错误(因为它并没有始终如一地出现),我最终为onPageCommitVisible
添加了一个计时器,该计时器在onPageFinished
之前或之后不久被调用。对我来说似乎很可笑,但我证实此修复程序有效。
以下是您感兴趣的代码:https://github.com/TomTasche/OpenDocument.droid/commit/c14efd6b4adfaed56150c886b4384e03209e67af