我正在使用cordova制作游戏,我需要计算用户退出应用程序和用户重新打开它之间的时间差异。 这是我的代码:
var date = new Date();
var currentTime = date.getTime();
var lastTime = parseInt(window.localStorage.getItem('lastTime'));
var timeDifference = Math.round((currentTime - lastTime)/1000 );
lastTime 等于在用户出口处执行的 date.getTime()。
问题是 timeDifference 实际上并没有保留自上次退出以来经过的秒数,而是保留了更大的值。
答案 0 :(得分:1)
您应该使用暂停/恢复事件:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
document.addEventListener("resume", onResume, false);
document.addEventListener("pause", onPause, false);
}
// Handle the resume event
//
function onResume() {
var date = new Date();
var currentTime = date.setTime();
var lastTime = parseInt(window.localStorage.getItem('lastTime'));
var timeDifference = Math.round((currentTime - lastTime)/1000 );
}
// Handle the pause event
//
function onPause() {
var date = new Date();
var currentTime = date.getTime();
window.localStorage.setItem('lastTime', currentTime);
}
请参阅more information about events的cordova文档。