Android-анимация WebView с множеством вызовов webView.LoadData - PullRequest
1 голос
/ 06 июня 2019

При написании кроссплатформенного программного обеспечения я принял решение написать один раз представления в формате HTML, чтобы они были одинаковыми на веб-сайте, iOS и в приложениях andorid. Я пытаюсь отобразить их на Android с помощью WebView.

Представления являются анимированными, и поэтому я генерирую новый HTML по крайней мере 10 раз в секунду и обновляю их:

webView.LoadData(htmlString, "text/html", "UTF-8");
webView.PostInvaldiate();

Тем не менее, веб-представление обновляется только каждые 2 секунды, с максимальной скоростью . Я полностью перегружаю поток пользовательского интерфейса? Я предполагаю, что WebViews никогда не были разработаны для этого. Можно ли отображать анимированный вид, подобный этому (с использованием HTML) в Android, или мне нужно сократить свои потери и вернуться назад и переписать все это, используя холст для Android или что-то в этом роде?

Также приглашаем комментарии относительно того, насколько идиотским было это дизайнерское решение!

1 Ответ

2 голосов
/ 06 июня 2019

Попробуйте это:

WebSettings webSettings = webView.getSettings();
        webSettings.setAllowContentAccess(true);
        webSettings.setAppCacheEnabled(true);
        webSettings.setDatabaseEnabled(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setDatabaseEnabled(true);
        webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
        webSettings.setAllowContentAccess(true);
        webSettings.setAllowFileAccessFromFileURLs(true);
        webSettings.setJavaScriptEnabled(true);

Или вы можете использовать https://github.com/crosswalk-project. У этого есть лучшие графические особенности. Вы можете сгенерировать проект через npm или (второй предпочтительный вариант) использовать gradle зависимость и использовать CrossWalkView в качестве простого WebView.

Также попробуйте еще одну расширенную веб-библиотеку: https://android -arsenal.com / details / 1/4873

...