我有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); }
我得到了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); } });
现在我只是在javascript(SystemClock.sleep(5000)
)之后添加延迟,但这就像..是的.