2

我正在尝试将以下 URL 加载到 webview 中: index.html?name

这适用于 Android 2.2 设备和模拟器,以及 Android 3.1 模拟器。但是,当我在我的 Android 3.1 Galaxy 选项卡上加载应用程序时,我遇到了一个错误:

网页无法显示

位于 file:///android_asset/index.html?name 的网页可能暂时关闭,或者它可能已永久移动到新的网址。

似乎它没有注册它是本地资产并且正在尝试为其访问网络。知道为什么会发生这种情况,并且仅在物理 3.1 设备上吗?如果我尝试仅加载 index.html,那么它在所有内容上都可以正常工作。我对此表示怀疑,但它可能与问号有关吗?

提前致谢。

4

3 回答 3

1

我有同样的问题,但有一个解决方法......

将 ?name 改为 #name 即可,因为 Android 支持命名锚点。然后,您可以使用如下 JavaScript 来检测锚点并对其进行操作:

if (window.location.href.search('#name') > 0) 
{
  // Do something
}
于 2011-12-05T10:14:20.167 回答
0

我想你已经回答了你自己的问题。通过 HTTP,'?' 在 URL 中用于将 URL 参数与主 URL 分开;虽然有趣的是这可以在模拟器中与 file:///android_asset 一起使用,但我会犹豫将其称为错误。

如果您需要将参数传递给 HTML 页面(可能供 javascript 使用),一种选择是使用锚语法(例如file:///android_asset/index.html#name

于 2011-10-21T22:26:00.717 回答
0

根据标准,file://URL 不支持查询字符串,例如您的?name. 所以这几乎不是一个错误。你首先想要完成什么?您的代码的哪一部分应该处理名称?如果是 JavaScript,则加载页面,然后通过另一个loadUrl()带有javascript:URL 的调用在其上调用一些 JavaScript。

于 2011-10-21T22:36:24.707 回答