Android WebView + loadUrl与javascript + onPageFinished =滞后

Sve*_*ver 7 javascript android webview

我有WebView加载一些页面,当它完成时我应用一些javascript魔法来搞乱DOM.一切都很好,页面加载,onPageFinished我只是打电话wv.loadUrl(javascript);

但我不想看到加载过程,以及javascript如何工作,我只需要结果,所以我wv.setVisibility(View.INVISIBLE);从一开始就使我的视图不可见,并在完成所有操作后再次显示它.这就是问题发生的地方.

这段代码应该在javascript完成后使视图可见,但wv.setVisibility(View.VISIBLE)在javascript之前触发.所以有一会儿我看到了页面以及如何通过javascript更改它.这只是丑陋的.

  public void onPageFinished (WebView view, String url) {
         wv.loadUrl(javascript);
         view.getSettings().setLoadsImagesAutomatically(true);
         wv.setVisibility(View.VISIBLE);

    }
Run Code Online (Sandbox Code Playgroud)

我得到了loadUrl的异步工作,所以我尝试用另外的"make first view visible"方法制作另一个WebViewClient onPageFinished,并用它来调用JS.但它只是随着NPE错误而崩溃.

wv2.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished (WebView view, String url) {
     wv.setVisibility(View.VISIBLE);
}
});
Run Code Online (Sandbox Code Playgroud)

现在我只是在javascript(SystemClock.sleep(5000))之后添加延迟,但这就像..是的.

Sve*_*ver 1

好吧,我想我明白了。我们可以从 javascript 的末尾进行回调,该回调将触发“显示视图” - 就像这里这里(使用处理程序,因为我想更新 ui)。但这不会改变任何东西,问题似乎在于渲染速度。只是很慢。所以现在我将在触发 JS 后坚持 1 秒延迟。