在WebView for Android 3.1中加载URL在设备上失败但在模拟器上运行

时间:2011-10-21 21:23:06

标签: android android-webview android-3.1-honeycomb

我正在尝试将以下网址加载到网页视图中:index.html?name

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

  

网页不可用

     

file:///android_asset/index.html?名称的网页可能暂时关闭,或者可能已永久移至新的网址。

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

提前致谢。

3 个答案:

答案 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。