【问题标题】:Disable HTML5 in WebView without disabling Javascript在不禁用 Javascript 的情况下禁用 WebView 中的 HTML5
【发布时间】:2011-04-28 18:44:48
【问题描述】:

出于诊断目的,我需要能够在 Android 的 WebView 中禁用 HTML5,无需禁用 Javascript(即保持 WebSettings.setJavaScriptEnabled(true);

进一步澄清:我喜欢在没有安装任何 Flash 插件的情况下播放 YouTube 视频的能力。它甚至适用于setPluginsEnabled(false)。多亏了 WebView 的 HTML5 内置支持,我才能做到这一点。现在,要测试某个功能,我需要使用 YouTube 视频触发 DownloadListener.onDownloadStart() 不禁用 Javascript。

这可能吗?

更新:自从我发布这个问题后,我发现至少DOM storage can be disabled。我还没有找到禁用 HTML5 视频的方法。

【问题讨论】:

  • “禁用 HTML5”是什么意思?放弃对新元素的支持?重新模糊规范阐明的内容? ;-)
  • @T.J.克劳德 +1 澄清。在我的情况下,“禁用 HTML5”意味着禁用通过 HTML5 播放 YouTube 视频的能力。我需要用这样的视频触发DownloadListener.onDownloadStart()
  • 不是通过Webview...您可以使用一些自定义JS来修改页面DOM元素以关闭该功能..也许..
  • @Fred Grott +1 以获得洞察力。事实上,我梳理了WebSettings 中的 set*() 方法,但找不到任何可能暗示我正在寻找的功能的东西。

标签: javascript android html webview android-webview


【解决方案1】:

我知道这是一个非常古老的问题......不过,您可能想查看this answer 的想法。 WebSettings 类具有以下方法来启用/禁用 HTML5 功能:

  1. setDomStorageEnabled(boolean flag) - 设置是否启用 DOM 存储 API。
  2. setDatabaseEnabled(boolean flag) - 设置是否启用数据库存储 API。
  3. setDatabasePath(String databasePath) - 设置保存数据库存储 API 数据库的路径。
  4. setAppCacheMaxSize(long appCacheMaxSize) - 注意:在 API 18 中已弃用。
  5. setAppCachePath(String appCachePath) - 设置应用程序缓存文件的路径。
  6. setAppCacheEnabled(boolean flag) - 设置是否应启用应用程序缓存 API。

【讨论】:

    【解决方案2】:

    我不确定这个问题是否有意义。您将无法在支持它的浏览器中“禁用”HTML5 功能。您可能做的最好的事情是在网页上设置非 HTML5 文档类型,但即便如此,大多数渲染引擎(包括 webkit)仍然会很乐意支持它们实现的那些功能(<video> 标签、<canvas> 等)。

    听起来您真正想做的是测试特定设备上的流视频会发生什么(使用较旧的?不支持<video> 的 webkit 版本)。那正确吗?在这种情况下,我不知道 任何 版本的 Webkit 曾经随 Android 一起分发但不支持 <video>,但我可能是错的。

    【讨论】:

    • 感谢 +1 的帮助。我在我原来的帖子中解释说,我需要这个来进行诊断(即调试、故障排除)。我可以让 WebView 触发DownloadListener.onDownloadStart() 的唯一方法是我可以禁用 HTML5。我无法控制我试图研究我的 android 代码的网页。所以如果 HTML5 不能被禁用,我基本上就卡住了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2012-06-14
    • 2019-02-12
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多