Android WebView VS Phone Browser
У меня было много странных поведений с использованием WebView
в Android
, и мне интересно, почему существует так много различий между WebView
и Browser
, установленными на каждом телефоне?
В качестве примера я разработал некоторые приложения, которые должны были отображать контент HTML
, содержащий либо jquery-mobile
, flash
, javascript
, и встроенный YouTube, и так далее. Поэтому у меня было много проблем с отображением этих страниц внутри WebViews
. Либо они не будут отображаться вообще, просто пустое, либо видео не будут воспроизводиться, и так далее. И странно, что они работают правильно, если они открыты в Browser
, установленном на телефоне. У меня включен JavaScript, я пробовал использовать WebSettings
, я установил WebChromeClient
и WebViewClient
ищет ошибки javascript... но ничего не получилось.
Итак, я пришел к выводу, что компонент WebView
полностью отличается от приложения Browser
, установленного на телефонах. Я думаю, что каждый производитель делает свой собственный Browser
для поддержки максимально возможного количества страниц, а WebView
остается стандартным, включенным в Android SDK
.
Я прав? Или есть другие причины/объяснения?
Спасибо.
EDIT: Все, что предложил @ondoteam, было включено и установлено в данный момент. У меня больше нет ссылок на эти веб-сайты, которые в любом случае были внутренними.
Ответы
Ответ 1
В этой статье описываются ваши предположения о различиях брокеров в браузере между производителями, что абсолютно верно: 5 реальностей проверяет каждую команду перед работой над веб-сайтом Android
... что вызывает проблемы и загадочно/трудно диагностировать/решать проблемы.
Что касается ваших проблем с реализацией WebView
:
Версия jquery-mobile
может быть проблемой jquery-mobile, загруженной в веб-обозреватель Android, если вы используете jquery.mobile-1.0.1.min.js
, вы можете попробовать несжатый jquery.mobile-1.0.1.js
И Flash: -/Удачи:
Мигает экран при использовании веб-просмотра со вспышкой
Flash в WebView не работает на Android 3.2
Flash-видео не отображается в WebView для Android 3.0.1
Для загрузки SWF:
Загрузите SWF в WebView
загрузка флеш файлов (.swf) webview в android
Удачи вам в этом, кажется, множество переменных с устройствами, версиями Android и т.д. И будет упорствовать в пробной версии/ошибке.
Ответ 2
WebView
по умолчанию ограничен. Вы должны позвонить setWebChromeClient
и семье, чтобы иметь приличный опыт просмотра. Кроме того, не забывайте setJavaScriptEnabled()
и другие подобные вещи. Извините за мою краткость... Я думаю, что вам не нужны примеры.
http://developer.android.com/reference/android/webkit/WebView.html
Ответ 3
Браузер акций и WebView отличаются. Используя все настройки, например
WebView browser;
browser.clearFormData();
browser.clearHistory();
browser.clearCache(true);
browser.getSettings().setAppCacheEnabled(true);
browser.getSettings().setDatabaseEnabled(true);
browser.getSettings().setDomStorageEnabled(true);
browser.setWebChromeClient(new WebChromeClient());
по-прежнему он не загружает изображения с высоким разрешением, которые отлично загружаются браузером Android.
Только часть изображения может быть видна на экране веб-просмотра, который полностью отображается в обычном браузере Android.
Такое поведение наблюдается и с последним Android 4X SDK.
Это означает, что браузер по умолчанию Android сильно изменяет код webkit/webview, чтобы показать любой URL
Ответ 4
Вы проверили этот вопрос: jquery-mobile загрузился в веб-обозреватель Android.
Возможно, вы используете неправильные библиотеки. Просто проверьте в любом случае.