在使用 Oracle JET 开发 webapp 时,会使用到 ojrouter ,ojrouter 默认含有历史记录推送功能。在调试 Android 时会发现返回键总是返回到上一次浏览记录(App 中的记录),这在 Android 端使用时是不合理的。
解决方法:
1.在创建 router 时取消默认的历史记录推送功能。文档里没有写明如何取消,该方法有待补充。
2.在使用 router 时调用 go 方法,调用此方法时可以添加参数 go(‘stateId‘, {historyUpdate: skip}),取消历史记录推送功能。但这只能解决部分问题,而且不可能每个跳转都用 go 来执行。
3.更改返回按钮执行任务。直接退出 app ,不会返回历史记录。
1)调用 Cordova 返回按钮事件处理。 document.addEventListener("backbutton", onBackKeyDown, false);
2)添加 onBackKeyDown 方法。var onBackKeyDown = function () { navigator.app.exitApp(); };
这里可以添加二次点击返回才退出功能。
navigator.app 对象:
navigator.app.loadUrl() 加载 web 页面的应用程序或者系统默认的浏览器中
navigator.app.canaelLoadUrl() 在 web 页面成功加载之前取消加载
navigator.app.backHistory() 返回上一次浏览页面
navigator.app.clearHistory() 清空浏览历史
navigator.app.clearCache() 清空程序的资源文件缓存
navigator.app.exitApp() 退出应用程序
navigator.app对象参考网站:http://tanglei528.blog.163.com/blog/static/43353399201401110738334/