Как заставить Android Webview перерисовывать изменения DOM?

В настоящее время я работаю над веб-порталом, который необходимо запускать в Android Webview как часть собственного приложения. Весь этот портал в значительной степени основан на AJAX. Поэтому всякий раз, когда форма отправляется, это делается асинхронно. В зависимости от ответа мне нужно представить окно сообщения с надписью «Успех» или «Ошибка». Я делаю это с jQuery в данный момент. Проблема в том, что Android Webview не будет перерисовываться, и поэтому окно сообщения не будет видно. Что помогает, так это коснуться любого места на экране. Кажется, это заставляет перекрашивать. Нет, что мне нужно сделать, это:

1) Измените DOM другим способом, чтобы Android Webview обрабатывал его правильно.

OR

2) Принудительно перерисовать, запустив некоторые (псевдо) события или используя какой-нибудь грязный хак :)

Кто-нибудь когда-нибудь сталкивался с этой проблемой? Любые подсказки очень ценятся.


person NATOR    schedule 14.02.2013    source источник


Ответы (4)


Посмотрите это видео и прочитайте это ответ. Хитрость заключается в использовании

    -webkit-transform: translate3d(0,0,0);

css в div, который необходимо обновить. Это создает новый слой, а анимация/обновления становятся более плавными.

person Kiran Kumar    schedule 14.02.2013

У меня никогда не было проблем с отображением обновлений DOM из неасинхронных вызовов, поэтому, возможно, решением будет обратный вызов ваших асинхронных методов к введенному объекту (WebView.addJavascriptInterface()), а затем запустить вызов в потоке пользовательского интерфейса для Webview для обновления пользовательского интерфейса?

person kassim    schedule 19.08.2013

Просто другая мысль, чтобы получить желаемый результат:

Насколько это работает через jQuery, пытались ли вы включить JavaScript в своем WebView? Таким образом, вы сможете выполнять код JavaScript в своем WebView (и, возможно, изменения из jQuery будут видны).

myWebView.getSettings().setJavaScriptEnabled(true);
person Nick Louloudakis    schedule 19.08.2013

person    schedule
comment
В этом ответе самый сексуальный способ размещения фигурных скобок, который я когда-либо видел :-) - person neevek; 28.06.2019