Отключить HTML5 в WebView без отключения Javascript

В диагностических целях мне нужно иметь возможность отключить HTML5 в Android WebView, без отключения Javascript (т. е. сохранить WebSettings.setJavaScriptEnabled(true);)

Для дальнейшего уточнения: мне нравится возможность воспроизводить видео на YouTube без установленного плагина Flash. Это работает даже с setPluginsEnabled(false). Я могу сделать это благодаря встроенной поддержке WebView HTML5. Теперь, чтобы протестировать определенную функцию, мне нужно запустить DownloadListener.onDownloadStart() с видео на YouTube, без отключения Javascript.

Это возможно?

Обновление: поскольку я разместил этот вопрос, я обнаружил, что по крайней мере Хранение DOM можно отключить. Я еще не нашел способ отключить видео HTML5.


person uTubeFan    schedule 28.04.2011    source источник
comment
Что вы подразумеваете под отключением HTML5? Прекратить поддержку новых элементов? Повторно скрывать то, что разъясняет спецификация? ;-)   -  person T.J. Crowder    schedule 28.04.2011
comment
@Т.Дж. Краудер +1 за разъяснения. отключить HTML5 в моем случае означает отключить возможность воспроизведения видео с YouTube через HTML5. Мне нужно вызвать DownloadListener.onDownloadStart() таким видео.   -  person uTubeFan    schedule 28.04.2011
comment
Не через Webview... не могли бы вы использовать какой-нибудь пользовательский JS для изменения элементов DOM страницы, чтобы отключить эту функцию... может быть...   -  person Fred Grott    schedule 29.04.2011
comment
@Fred Grott +1 за понимание. Действительно, я прочесал методы set*() в WebSettings, но не смог не нашел ничего, что могло бы намекнуть на функцию, которую я ищу.   -  person uTubeFan    schedule 29.04.2011


Ответы (2)


Я знаю, что это очень старый вопрос... Тем не менее, вы можете проверить этот ответ для идеи. Класс WebSettings имеет следующие методы для включения/отключения функций HTML5:

  1. setDomStorageEnabled(логический флаг) включен API хранилища DOM.
  2. setDatabaseEnabled(логический флаг) — устанавливает, включен API хранилища базы данных.
  3. setDatabasePath(String databasePath ) — задает путь, по которому должны сохраняться базы данных API хранилища баз данных.
  4. setAppCacheMaxSize(long appCacheMaxSize) — Примечание. устарело в API 18.
  5. setAppCachePath(String appCachePath ) — задает путь к файлам кэшей приложений.
  6. setAppCacheEnabled(логический флаг) — устанавливает, API кэшей приложений должен быть включен.
person stumpped    schedule 30.07.2013

Я не уверен, что этот вопрос имеет большой смысл. Вы не сможете «отключить» функцию HTML5 в браузере, который ее поддерживает. Лучшее, что вы можете сделать, это установить тип документа, отличный от HTML5, на веб-странице, но даже в этом случае большинство механизмов рендеринга (включая веб-кит) по-прежнему будут поддерживать те функции (тег <video>, <canvas> и т. д.), которые они реализуют.

Похоже, что вы действительно пытаетесь проверить, что происходит с потоковым видео на конкретном устройстве (со старой?.. версией webkit, которая не поддерживает <video>). Это правильно? В данном случае я не знаю какой-либо версии Webkit, которая когда-либо распространялась с Android и не поддерживала <video>, но я могу ошибаться.

person digitalbath    schedule 09.07.2011
comment
Спасибо +1 за попытку помочь. В своем исходном сообщении я объяснил, что мне это нужно для диагностики (т.е. отладки, устранения неполадок). Единственный способ заставить WebView запускать DownloadListener.onDownloadStart() — это отключить HTML5. У меня нет контроля над веб-страницами, через которые я пытаюсь изучить свой код Android. Так что, если HTML5 нельзя отключить, я в основном застрял. - person uTubeFan; 31.07.2011