0

我正在尝试使用 PhoneGap 让我的 jQuery Mobile 网站在 Android 上运行(现在使用 Galaxy S3 进行测试,Android 4.0.4)。

当我尝试使用设备的“返回”按钮返回我网站的主页时,我收到一个应用程序错误,提示“发生网络错误。...”。我要返回的页面是最初使用“data-ajax=false”链接到的页面。

我可以复制错误如下:

  1. 启动应用程序,从 index.html 开始
  2. 单击使用 data-ajax=false 的链接,例如 help.html
  3. 使用设备的后退按钮返回 index.html
  4. 单击确实使用 data-ajax=false 的链接,名称无关
  5. 尝试使用设备的后退按钮返回 index.html

它抛出的确切错误是:

发生网络错误。(file:///android_asset/www/index.html#/android_asset/www/help.html

奇怪的是,如果我在转到“data-ajax=false”链接页面之前没有访问另一个页面,它不会引发错误,并且该页面按预期工作。

我似乎无法在网上找到任何有关解决方案的资源。

我尝试在 index.html 中设置 $.support.cors 和 $.mobile.allowCrossDomainPages = true ,但没​​有任何效果。两个链接之间的唯一区别是一个有 data-ajax=false 而另一个没有。我用两个相同的页面重现了错误,所以我确定页面的内容无关紧要。

这是我链接页面的方式:

<a href="help.html">Help</a>

<a href="test.html" data-ajax="false">Test</a>

任何建议或对正在发生的事情的解释将不胜感激。

4

1 回答 1

0

您可能应该避免在 phonegap 应用程序中使用 data-ajax="false" - 因为它会导致整个页面重新加载,您将丢失状态并在每个页面上重新初始化 phonegap 脚本,而不仅仅是在应用程序启动时。

虽然我不能 100% 确定,但很可能与为什么 url 在那个时候不起作用有关 - android_asset 可能不是设备的真正根文件夹,并触发 /android_asset/www/ 的负载部分初始化页面中的 help.html 可能无法按预期工作。

如果您不先访问 ajax 页面,则 url 上没有哈希,它只是 index.html 的常规加载,与启动应用程序时相同。

于 2012-11-16T02:33:23.823 回答