2013-03-01 8 views
5

ローカルストレージを使用して値を渡して効果を生み出す(ユーザーがリンクをクリックし、IDに基づいてページの特定の部分にスクロールする)Phonegap - ローカルストレージが機能しない - Android

以前はCookieを使用していましたが、Android上では動作していないようですが、ローカルストレージはサポートされていたので、それを切り替えました。ブラウザでは完全に正常に機能しますが、ネイティブアプリとしてパッケージ化されるとすぐにすべての機能が失われます。 APIには、サポートする必要があると書かれています。

ここに私のコードです:

ベースURL:URLを受信

var storage = window.localStorage; 
$("a.scroll_link").click(function(event) { 
    event.preventDefault(); 
    var value = $(this).attr("id"); 

     storage.setItem("key",value); 

    console.log(value); 

    window.location=$(this).attr("href"); 
}); 

$(function() { 

var value = window.localStorage.getItem("key"); 

if (value != "" && value != "undefined" && value != null) { 
    var storage = window.localStorage; 
    storage.setItem("key",value); 
    var scroll_type = ""; 

    if ($.browser.webkit) { 
     scroll_type = "body"; 
    } else { 
     scroll_type = "html"; 
    } 

    $(scroll_type) 
     .stop() 
     .animate({ 
     //get top-position of target-element and set it as scroll target 
     scrollTop: ($("#" + value).offset().top - 25) 
     //scrolldelay: 1.5 seconds 
    }, { 
     duration: 1500, 
     complete: function() { 
      storage.removeItem("key"); 
     }, 
    }); 
    } 
}); 

コードは、だけではないネイティブに任意のアイデアを、ブラウザで正常に動作しますか?

おかげで、

答えて

2

使用document.addEventListener( "deviceready"、onDeviceReady、偽)の代わりに、$(関数(){...}

http://docs.phonegap.com/en/2.5.0/cordova_events_events.md.html#deviceready

+0

私のデバイスからアプリケーションを削除してからコードを再実行してみると、現在はすべてiScrollと一緒にlocalStorageを使用することに問題があります。他の誰かと何も考えていない誰ですか? – woolm110

1

1.Gladはあなたを知っていますあなたの最初の問題を解決してくださいgmh04と言うと、私はあなたのinitイベントを 'deviceready'と置き換えるべきだと思います。アプリケーション起動時にトリガされます。

2. あなたはwindow.localStorage.getItem URLの受信ではnull? 私は、あなたが何を記述しているかのように問題に遭遇していません。しかし、あなたはベースURLの同じページにURLを受け取るコードを移動しようとする可能性があります。私は時間をかけて試して、localStorageが同じページで動作することを確かめてください。

+0

getItemは正常に動作しているようですが、値が渡されていると思われますが、その値のIDと一致するページ上の位置をアニメーションしてスクロールします。 – woolm110

1

私はAndroid上で動作しないのlocalStorageを作るcordova.jsの2.6.0バージョンにバグがあることを追加したいと思います:それは完璧に動作

https://issues.apache.org/jira/browse/CB-3063

を2.5.0バージョンでは、それは既に2.7.0 rcで修正されています。

関連する問題