我有WebView,它加载了一些页面,当它完成时,我应用了一些JavaScript魔法来搞砸DOM。一切都很好,页面加载和onPageFinished
我只是叫wv.loadUrl(javascript);
Android WebView + loadUrl with javascript + onPageFinished = lag
但我不希望看到加载过程中,和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以异步方式工作,所以我试着与公正“做出第一个视图中看到”里面onPageFinished
方法的另一个WebViewClient,并用它来调用JS。但它只是不断与NPE错误崩溃。
wv2.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished (WebView view, String url) {
wv.setVisibility(View.VISIBLE);
}
});
对JavaScript(SystemClock.sleep(5000)
)后,现在我只是添加的延迟,但是这就像..是啊。
我认为我们有这个bug的解决方案:http://android-know-how-to.blogspot.co.il/2013/08/android-webview-javascript-onpagefinish.html – TacB0sS 2013-08-19 13:37:48