Вот шаги:
- Загрузка локального html-файла с помощью WebView.loadUrl ().
- В этом локальном html-файле есть несколько методов javascript, которые изменяют страницу. Например, добавление изображения или изменение размера текста.
- Вызовите один из этих методов, используя WebView.loadUrl ("javascript: somefunction ()");
Это работает просто отлично. Изменения хорошо отображаются.
Однако, если страница прокручивается во время вызова, происходит нечто действительно странное. Вызывается javascript, и, глядя на ведение журнала, DOM меняется, и все идет так, как ожидалось на этом уровне. Тем не менее, WebView не показывает обновление. Если вы затем сделаете что-то, чтобы заставить его перерисовать себя, например, поверните устройство или снова вызовете один из методов javascript (но не прокручиваете на этот раз), наконец появятся предыдущие изменения.
Так что, по-видимому, существует странная ошибка, при которой изменения на странице с помощью javascript не обновляются в пользовательском интерфейсе WebView, если к странице прикасались или прокручивались в то время.
Это действительно воспроизводимо на Nexus One 2.2, и мы видели это на других устройствах. Кто-нибудь знает, что здесь происходит? Есть ли способ, который делает недействительным, что вызывает перерисовку веб-контента?
Спасибо.