使用 phonegap 2.0 我无法弄清楚为什么 window.localstorage 返回未定义。Window.device工作得很好,但是当我做一个控制台时.log window.localstorage它是未定义的,我不知道为什么。我确保将插件添加到xml中(我正在使用Android)。任何帮助都非常感谢。我觉得这是非常简单的事情,但我只是没有看到它。
这是 index.html 文件的代码片段
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name = "format-detection" content = "telephone=no"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link href="css/styles.css" rel="stylesheet">
<script src="phonegap/android.js"></script>
<script src="js/childbrowser.js"></script>
<script>
document.addEventListener('touchmove', function(e){
e.preventDefault();
}, false);
document.addEventListener('deviceready', function(){
alert(window.localstorage);
}, false);
</script>
</head>
<body>
<!-- DEVELOPMENT -->
<script src="libs/zepto.js"></script>
<script src="libs/underscore.js"></script>
<script src="libs/backbone.js"></script>
<script src="libs/iscroll.js"></script>
<script src="js/app.js"></script>
</body>
</html>
我编写了几个函数,我几乎在所有应用程序中使用的函数,使其在处理用户首选项时更容易一些......
function getPref(iKey, iDefault){
try{
var R = window.localStorage.getItem(iKey);
if (R==null || R=='') {return iDefault;} else {return R;}
}catch(e){return iDefault;}
}
function setPref(iKey, iData){
window.localStorage.setItem(iKey, iData);
}
用法:
// on load user preferences procedure
$('#GPSCheckbox').val(getPref('UseGPS','off'));
$('#WiFiCheckbox').val(getPref('WiFiOnly','on'));
// on save user preferences procedure
setPref('UseGPS',$('#GPSCheckbox').val());
setPref('WiFiOnly',$('#WiFiCheckbox').val());
我希望这对您的情况有所帮助...