history.back在使用Cordova的iOS上不起作用

Aur*_*osa 6 javascript jquery ios html5-history cordova

我有一个与Cordova一起开发的混合应用程序.该应用程序非常简单,所以我没有使用框架.几乎所有的页面都是使用jQuery的ajax()方法通过Ajax注入的,然后通过该pushState()方法使用HTML5 History API在历史记录中添加.

为了让用户返回之前访问过的页面(历史记录中的页面),我创建了一个按钮.我监听backbutton事件以及点击该按钮,当事件被触发时,我执行以下处理程序:

onBackButton: function() {
   window.history.length === 0 ? navigator.app.exitApp() : window.history.back();
}
Run Code Online (Sandbox Code Playgroud)

为了确保最大程度的兼容性,我还将history.js添加到项目中.

它就像Android上的魅力和Mac上的iOS模拟器一样,但不适用于真实设备.会发生什么是iOS捕获事件但该方法的执行不会更改页面.我已经基于StackOverflow上的先前答案尝试了几种方法,但没有运气.一些例子是:history.back()不能在phonegap ios构建中工作,Phonegap - navigator.app.backHistory()不能处理HTML后退按钮.

我能尝试什么?

tot*_*ten 5

你可以简单地使用,

history.go(-1);
Run Code Online (Sandbox Code Playgroud)

导航回来.


小智 1

几个月前看到过这个答案吗?显然,iOS 在仅通过脚本导航历史记录时存在一些安全问题。这里的答案还包括通过哈希 URL 来解决问题:StackOverflow Question