(при использовании Samsung Galaxy Tab и Android 3.0 он предназначен для работы на каждом планшете 3.0+, как это происходит в их браузерах, но не в веб-просмотре)
У меня есть страница с CSS и jQuery, которая нормально загружается в браузерах, браузерах Android и устройствах iOS, но Android WebView отказывается загружать ее постоянно.
Я сузил проблему, просто пропустив javascript при загрузке (повторив проблему с некоторыми демонстрационными приложениями javascript в webview). Почему это?
ЗДЕСЬ ПОЛНЫЙ ТЕСТОВЫЙ КОД HTML
http://pastebin.com/GmE2vEYx
и вот как я это называю:
myWebview.loadUrl("file:///android_asset/myPage.html");
myWebview.getSettings().setJavaScriptEnabled(true);
myWebview.setWebChromeClient(new WebChromeClient());
Порядок этих трех вызовов не влияет на результат.
myWebview.getSettings().setJavaScriptEnabled(true);
myWebview.setWebChromeClient(new WebChromeClient());
myWebview.loadUrl("file:///android_asset/myPage.html");
Одна вещь, которую я заметил, это то, что если вы дадите ему время (приостановив приложение с точкой останова в отладчике), тогда javascript будет загружаться более последовательно. Это привело меня к некоторым надуманным экспериментам по попытке замедлить загрузку приложения, но это на самом деле нежелательный пользовательский опыт. Я очень надеюсь, что Android WebView действительно не IE6 мобильной разработки.
Дополнительные факты:
Если вы удалите теги <script>
, которые содержат весь Jquery, то страница быстро загружается со всем форматированием CSS. Как только Jquery добавлен, ничего не загружается вообще.
Я также нашел несколько других вопросов, которые сталкиваются с точно такой же проблемой, многие остаются без ответа или не имеют окончательного ответа на то, что ищет ОП: (
см:
Android: не удается заставить JavaScript работать в WebView даже с setJavaScriptEnabled (true)
При перезагрузке страницы (Webview.loadUrl) Javascript не обрабатывается (полностью)
http://groups.google.com/group/android-developers/browse_thread/thread/9962064ef217a5a7#
JavaScript иногда не работает в веб-представлении Android
Android WebView не загружает файл JavaScript, но браузер Android загружает его нормально
Веб-браузер Android не может обрабатывать JavaScript?
предложения? давайте доберемся до сути этого! В документации Android говорится, что у веб-просмотра есть ограничения, но я не знаю, где этот предел, так как люди все время создают приложения HTML CSS JS!