首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >history.back不使用Cordova在iOS上工作

history.back不使用Cordova在iOS上工作
EN

Stack Overflow用户
提问于 2014-06-22 15:28:31
回答 6查看 9.3K关注 0票数 6

我和科多瓦一起开发了一个混合应用程序。这个应用程序非常简单,所以我没有使用框架。几乎所有页面都是使用jQuery的ajax()方法通过Ajax注入的,然后使用HTML5历史API通过pushState()方法添加到历史记录中。

为了让用户回到以前访问过的页面(历史上的一个页面),我创建了一个按钮。我侦听backbutton事件,并点击该按钮,当事件被触发时,我执行以下处理程序:

代码语言:javascript
运行
复制
onBackButton: function() {
   window.history.length === 0 ? navigator.app.exitApp() : window.history.back();
}

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

它在安卓和Mac上的iOS模拟器上都很有魅力,但在真正的设备上却不起作用。所发生的是iOS捕获事件,但是方法的执行不会改变页面。我已经在StackOverflow上尝试过几种基于以前答案的方法,但没有成功。一些例子是:history.back()在phonegap构建中不工作Phonegap按钮不工作的navigator.app.backHistory()

我能尝试什么?

EN

Stack Overflow用户

发布于 2014-07-02 13:05:16

不知道科多瓦自己有没有领航员。但是我通常用这个函数来回溯:

代码语言:javascript
运行
复制
function goBack() {
    //or history.back()
    history.go(-1);
    navigator.app.backHistory();
}

但无法测试。

编辑:由于您没有通过ajax完成完全刷新和加载几乎所有的操作,所以您可能必须自己实现历史记录。iphone在返回时只使用javascript页面有一些问题。既然你把自己的行为推到历史上去,就不应该太难了:

代码语言:javascript
运行
复制
window.addEventListener("popstate", function(e) {
    //get it from the history, execute your functions to show the page as usual
});
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24352757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档