【问题标题】:Android 4.0 WebView.loadURL oddityAndroid 4.0 WebView.loadURL 奇怪
【发布时间】:2012-02-02 01:31:06
【问题描述】:

我有一个 Android 应用程序,其中包含一个名为 Help 的活动,它使用 WebView 以 HTML 格式显示帮助内容。可以通过两种方式调用该活动:传递 URL 或直接文本内容。我传递给它的唯一 URL 是“file:///android_asset/help/index.html”(这是我的 APK 资产中包含的 HTML 页面)。

在运行 Android 2.2 的 HTC Desire 上传递 URL 可以正常工作。它似乎也适用于运行 Android 3.0 的模拟器。但是,当我在 Android 4.0 的模拟器中尝试时,它似乎尝试启动 Web 浏览器,以显示空白页面;当我关闭它时,我又回到了我的帮助活动中,同时也显示了一个空白页面。

在我尝试过的所有版本上,直接传递文本内容都可以正常工作。 WebView 文档说“请注意,为了让您的 Activity 访问 Internet 并在 WebView 中加载网页,您必须将 INTERNET 权限添加到您的 Android Manifest 文件中:”但我不需要访问 Internet,因为这样,我只想显示我的应用程序内部帮助页面。这适用于 4.0 之前的 Android 版本。

这是 Android 4 中的错误吗?还是只是我误解了什么?感谢您的帮助。

【问题讨论】:

  • 你有没有试过,如果你有INTERNET权限,它是否有效?
  • 我真的不想添加,因为我已经在没有 INTERNET 许可的情况下发布了该应用程序。避免随意向应用添加权限是个好主意,不是吗:我们希望教 Android 用户对应用所需的权限持怀疑态度,而不是盲目地在所有内容上单击“接受”。
  • 当然,我只是对它是否有所作为感兴趣。

标签: java android


【解决方案1】:

我上周在 HTC Sensation 上从 2.3.4 更新到 4.0。 我编写的两个应用程序有一个本地 HTML-Contact 站点。 在 2.3 上它运行良好,现在我得到一个“网页不可用”网站。

我在这个网站上发现了另一篇带有评论的帖子: “通过与 Google 工程师的讨论,他们似乎已决定 file:// 方案不安全。”

请看这里:Android 4.0.1 breaks WebView HTML 5 local storage?

【讨论】:

  • 虽然您必须将整个 html 放入一个字符串并转义每个 html-quote,但该解决方法仍然有效。不要浪费时间将其放入字符串(在 string.xml 中),因为 XML 文件格式错误。
  • 感谢您确认我不是唯一看到此内容的人,而且这是一项功能,而不是错误。 :)
  • 有史以来最糟糕的功能,可能是为了鼓励人们编写原生 android 应用程序而不是 html 应用程序打包在 apks 中...谢天谢地 windows 8 很快就会出现 o_o
猜你喜欢
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多