带有phonegap的后退按钮(和查询移动?)

我正在使用jquery mobile和phonegap编写的应用程序出现问题。 在浏览器中进行测试时,我使用后退按钮没有任何问题(没有涉及phonegap js)。 然而,一旦我尝试使用phonegap js的设备,它就会中断。

重现步骤:

  1. 加载应用
  2. 访问多个页面(使用#在内部链接)
  3. 单击后退按钮或从任何地方调用history.back()(使用js控制台,或通过触发调用它的内容)

在浏览器(chrome,firefox等)上,它返回一个’page’(到之前的#link,无论它是什么)。 这是首选行为。

在设备(iPhone 4,iPhone模拟器,Android 2.2(设备),Android 3.2(设备))上,它会转到第一个/登录页面(index.html文件中的第一个“页面”)。

我怀疑问题出在phonegap上。 有没有办法恢复到首选行为或浏览器?

你使用jQuery Mobile的“后退”按钮链接属性吗? 我已经轻松使用它并且它可以工作(到目前为止仅在Android上使用)。 您是否试图覆盖(仅限Android) 后退按钮事件 ? 不推荐,不管你想要什么,而且无论如何都不能在iPhone等上使用。

问题是由我使用的数据url中的空格引起的。 桌面浏览器似乎可以正确处理空间,但移动浏览器会将空间转换为%20%字符。 jQuery mobile尝试使用空格,但浏览器只会记住更改后的字符。

编辑: jqm页面有一个data-url属性,允许您在一个html文档中存储多个页面。

   ...   
...
...

第一页可以通过几种方式加载……

在一份文件中

  

或通过JavaScript

 $.mobile.changePage("#page-one"); 

我遇到的问题是带有data-url第二page two 。 在桌面浏览器上维护了空间,jqm中内置的自定义历史记录控件继续按预期运行。 但是在移动浏览器上,空间变成了一个转义空间,jqm历史记录控件无法识别或跟踪。

   

确保在androidmenifest.xml文件中必须包含android:targetSdkVersion大于android:minSdkVersion