我有一个小型测验应用,这是一个跨平台的移动应用,我计划在Android,iOS和WP8上运行。我想存储一个本地高分,它将跟踪用户有多少分,如果他/她比已经存储的高分更好,则更新当前的高分。虽然,我希望高分能够持久,我的意思是,每次用户打开应用程序时,我希望最后一个高分能够出现,并将其与新的测验分数进行比较。这意味着,我不想在每次关闭应用程序后删除高分。我还想第一次运行应用程序时,将高分设置为0,所以显然用户第一次完成测验会获得新的高分。
到目前为止我有这些代码:
scoredb.js
// Wait for device API libraries to load
document.addEventListener("deviceready", initScoreDB, false);
// Device APIs are available
function initScoreDB() {
window.localStorage.setItem("score", 0);
highscore = window.localStorage.getItem("score");
}
main.js
var correct = 0;
var highscore;
// In between I have some code that keeps incrementing
// correct variable for each correct answer.
if (correct > highscore) {
window.localStorage.setItem("score", correct);
highscore = correct;
}
一旦应用程序启动,它似乎确实可以正常工作。我在模拟器中做了三次测验,它保持了应有的分数。虽然,每次打开应用程序时,高分都会重置为0.我想这是因为我在设备准备就绪时调用了initScoreDB,并且我将得分初始化为0并将该值赋予高分。有人可以帮助我仅在应用程序第一次运行时将分数初始化为0,并且所有其他时间将最新的分数保持为当前的高分,并且每次将其与测验时获得的分数进行比较完了。如果有人可以帮助我,我会很高兴。
答案 0 :(得分:0)
这样的事情:
function initHighScore() {
if (window.localStorage.getItem("score")) {
highscore = window.localStorage.getItem("score");
} else {
highscore = 0;
}
}
我将方法重命名为initHighScore
,因为它没有将分数保存在本地存储中(留给应用程序的其他部分)。