Вопрос по android – Оптимальные настройки WebView для поддержки HTML5?

13

Я заинтересован в определении оптимальных настроек для WebView, предназначенного для отображения содержимого HTML5.

В настоящее время я использую:

<code>mWebView.setFocusable(true);
mWebView.setFocusableInTouchMode(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setDatabaseEnabled(true);
mWebView.getSettings().setAppCacheEnabled(true);
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
</code>

С этими настройками оценка WebView 189 (с 1 бонусом) наhtml5test.com, Мне интересно, есть ли какие-либо настройки, которые я должен / мог бы изменить, чтобы добиться дальнейшей совместимости с HTML5. Конечно, этот список представляет собой объединение настроек, составленных за несколько месяцев, поэтому я также открыт для того, чтобы мне говорили, что я делаю что-то не так. У меня нет контроля над отображаемым HTML-контентом, но я стараюсь поддерживать как можно более широкий диапазон HTML5.

Ваш Ответ

4   ответа
1

ИМХО, ответ, вероятно, имеет гораздо больше общего, чем ваша версия Android, чем конкретные настройки.

Посмотрите на «Таблицы» раздел CanIUse.com:

... или MobileHTML5.org:

Он говорит о настройках WebView, которые он должен сделать для Android WebView. Проверьте код выше.
7

Я бы добавил:

    mWebView.setWebViewClient(new WebViewClient()); // tells page not to open links in android browser and instead open them in this webview
2

Вы также можете установить как

try {
  WebSettings settings = view.getSettings();
      settings.setJavaScriptCanOpenWindowsAutomatically(true);
      settings.setSupportMultipleWindows(true);
      settings.setBuiltInZoomControls(true);
      settings.setJavaScriptEnabled(true);
      settings.setAppCacheEnabled(true);
      settings.setAppCacheMaxSize(10 * 1024 * 1024);
      settings.setAppCachePath("");
      settings.setDatabaseEnabled(true);
      settings.setDomStorageEnabled(true);
      settings.setGeolocationEnabled(true);
      settings.setSaveFormData(false);
      settings.setSavePassword(false);
      settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
      // Flash settings
      settings.setPluginState(WebSettings.PluginState.ON);

      // Geo location settings
      settings.setGeolocationEnabled(true);
      settings.setGeolocationDatabasePath("/data/data/selendroid");
    } catch (Exception e) {
      SelendroidLogger.error("Error configuring web view", e);
    }
settings.setRenderPriority() а такжеsettings.setPluginState() оба устарели на уровне API 18
3

Вот (старый) проект, связанный с оптимальными настройками HTML5:
http://code.google.com/p/html5webview/source/browse/trunk/HTML5WebView/src/org/itri/html5webview/HTML5WebView.java

К вашему сведению, обычно я также устанавливаю путь к хранилищу базы данных для HTML5:

mWebView.getSettings().setDatabaseEnabled(true);
mWebView.getSettings().setDatabasePath("/data/data/" + Actvity.getPackageName() + "/databases/");

Похожие вопросы