我正在尝试将以下网址加载到网页视图中:index.html?name
这适用于Android 2.2设备和模拟器,以及Android 3.1模拟器。但是,当我在Android 3.1 Galaxy选项卡上加载应用程序时,遇到错误:
网页不可用
file:///android_asset/index.html?名称的网页可能暂时关闭,或者可能已永久移至新的网址。
似乎没有注册它是本地资产并且正在尝试访问网络。知道为什么会这样,只在物理3.1设备上?如果我尝试只加载index.html那么它可以正常工作。我对此表示怀疑,但这可能与问号有关吗?
提前致谢。
答案 0 :(得分:1)
我有同样的问题,但有一个解决方法......
将名称更改为#name,它将起作用,因为Android支持命名锚点 。然后,您可以使用以下JavaScript来检测锚并对其进行操作:
if (window.location.href.search('#name') > 0)
{
// Do something
}
答案 1 :(得分:0)
我想你已回答了自己的问题。通过HTTP,'?'在URL中用于将URL参数与主URL分开;虽然有趣的是它可以在模拟器中使用file:/// android_asset,但我会毫不犹豫地称它为bug。
如果您需要将参数传递给HTML页面(可能需要使用javascript),一种选择是使用锚语法(例如file:///android_asset/index.html#name
)
答案 2 :(得分:0)
根据标准,file://
网址不支持查询字符串,例如?name
。所以这不是一个错误。你想要首先完成什么?代码的哪一部分应该处理名称?如果是JavaScript,请加载页面,然后通过另一个loadUrl()
调用javascript:
网址调用其中的一些JavaScript。