我有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