Android WebView + loadUrl с javascript + onPageFinished = задержка ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Android WebView + loadUrl с javascript + onPageFinished = задержка

Сообщение Anonymous »

У меня есть 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 работает асинхронно, поэтому я попытался создать еще один WebViewClient, просто используя метод «сделать первое представление видимым» внутри onPageFinished, и использовать его для вызова Дж.С. Но он продолжает вылетать из-за ошибки NPE.

Код: Выделить всё

wv2.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished (WebView view, String url) {
wv.setVisibility(View.VISIBLE);
}
});
На данный момент я просто добавил задержку после javascript (

Код: Выделить всё

SystemClock.sleep(5000)
), но это типа... да.

Подробнее здесь: https://stackoverflow.com/questions/582 ... nished-lag

Вернуться в «Android»