我在这里使用此代码作为路由器来处理单页面应用程序中的页面( 科尔多瓦)。
var router = (function () {
"use strict";
var routes = [];
function addRoute(route, handler) {
routes.push({parts: route.split('/'), handler: handler});
}
function load(route) {
window.location.hash = route;
}
function start() {
var path = window.location.hash.substr(1),
parts = path.split('/'),
partsLength = parts.length;
for (var i = 0; i < routes.length; i++) {
var route = routes[i];
if (route.parts.length === partsLength) {
var params = [];
for (var j = 0; j < partsLength; j++) {
if (route.parts[j].substr(0, 1) === ':') {
params.push(parts[j]);
} else if (route.parts[j] !== parts[j]) {
break;
}
}
if (j === partsLength) {
route.handler.apply(undefined, params);
return;
}
}
}
}
$(window).on('hashchange', start);
return {
addRoute: addRoute,
load: load,
start: start
};
}());
并且此路由器的使用方式如下:
router.addRoute('', function() {
document.getElementById("bodyDiv").innerHTML = homePageHtml;
});
router.addRoute('page1', function() {
document.getElementById("bodyDiv").innerHTML = page1Html;
});
我想在我的应用程序中添加后退按钮,但它不起作用。我确实试过了
window.history.back();
history.go(-1);
navigator.app.backHistory();
但它们都没有像它想象的那样工作。 当我在谷歌浏览器上打开应用程序时,它工作得很好,但当我使用Cordova将其转换为移动应用程序时,后退按钮无法按预期工作,有时后退按钮而不是带您到上一页刷新当前页面。
答案 0 :(得分:1)
您可以使用:
这只是后退按钮的一个例子。
document.addEventListener("backbutton", function () {
exitAppPopup();
}, false);
function exitAppPopup() {
navigator.app.exitApp();
}
答案 1 :(得分:0)
你有没有试过这样的东西?
document.addEventListener("backbutton", back_function, false);
function back_function() {
// Handle event
}