0

phonegap 2.0 を使用すると、window.localstorage が undefined を返す理由がわかりません。Window.device は完璧に動作しますが、window.localstorage の console.log を実行すると未定義になり、その理由がわかりません。プラグインを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>
4

1 に答える 1

0

ほぼすべてのアプリで使用するいくつかの関数を作成して、ユーザー設定を処理するときに少し簡単にしました...

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());

これがあなたの状況に役立つことを願っています...

于 2012-09-29T15:11:29.920 に答える