2011-10-21 93 views
2

我想以下网址加载到网页视图:index.html的名字加载网址为Android 3.1设备上的失败,但工作在模拟器

能正常工作的Android 2.2设备和仿真器上,如以及Android 3.1模拟器。然而,当我加载应用了我的Android 3.1的Galaxy Tab上,我遇到了一个错误:

Webpage not available

The webpage at file:///android_asset/index.html?name might be temporarily down or it may have moved permanently to a new web address.

好像它不注册,这是一个本地资产,并试图访问Web它。任何想法为什么会发生这种情况,只有在物理3.1设备上?如果我尝试只加载index.html,那么它在任何情况下都可以正常工作。我怀疑它,但它可能与问号有关吗?

在此先感谢。

回答

0

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

如果需要将参数传递到HTML页面(也许是JavaScript的使用),一种选择是使用锚语法(如file:///android_asset/index.html#name

+0

Thanks!使用锚定语法将是首选方式。 – user979551

+0

@ user979551不要害怕upvote有用的答案;) –

0

按照标准,file://网址不支持查询字符串,如您的?name。所以这不是一个错误。你首先想完成什么?你的代码中哪部分应该处理这个名字?如果是JavaScript,请加载页面,然后通过与javascript: URL调用另一个loadUrl()调用一些JavaScript。

+0

我有一些运行的JavaScript,我需要传递一些数据,因为问题是JavaScript必须立即加载,所以我无法检索页面后的数据已被提取。感谢您的洞察力! – user979551

1

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

变化?名称#NAME代替,它会工作,因为 Android支持命名锚。然后,您可以使用如下所示的JavaScript来检测锚并对其执行操作:

if (window.location.href.search('#name') > 0) 
{ 
    // Do something 
} 
相关问题