2013-03-01 12 views
5

मैं स्थानीय संग्रह आदेश आशय का एक पुस्तक बनाने के लिए पृष्ठों के बीच मानों के बारे उपयोग कर रहा हूँ (उपयोगकर्ता लिंक पर क्लिक करके पेज आईडी के आधार पर की विशेष भाग के लिए स्क्रॉल किया जाता है)Phonegap - स्थानीय संग्रहण काम नहीं कर रहा - एंड्रॉयड

मैं पहले कुकीज़ का उपयोग कर रहा था लेकिन है कि Android पर काम करने की नहीं लगता था, मैंने पढ़ा है कि स्थानीय भंडारण किया गया था समर्थन इतना अधिक है कि करने लगे। ब्राउज़र में जब यह पूरी तरह ठीक काम करता है लेकिन जैसे ही इसे मूल ऐप के रूप में पैक किया जाता है, तो मैं सभी कार्यक्षमता खो देता हूं? एपीआई बताता है कि इसे किसी भी विचार, समर्थित होना चाहिए?

आधार 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, झूठी) के बजाय $ (function() {...}

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

+0

यह अब काम धन्यवाद समझे, मैं अपने डिवाइस से एप्लिकेशन को नष्ट कर दिया और उसके बाद कोड को फिर से चलाने के लिए और यह अब सभी काम करता है, मैं हालांकि अब localStorage का उपयोग कर एक साथ iScroll साथ साथ समस्या हो रही हूँ, यह मैं एक या हो सकता है लगता है अन्य और दोनों नहीं .. किसी भी विचार किसी को भी? – woolm110

1

1.Glad आप को पता है अपनी पहली समस्या को हल करें। जैसा कि gmh04 कहता है, मुझे लगता है कि आपको अपने डिवाइस को 'deviceready' के साथ प्रतिस्थापित करना चाहिए, जो ऐप चलने पर ट्रिगर होता है।

2. आपका मतलब विंडो है। localStorage.getItem ("key") वापसी यूआरएल प्राप्त करने में शून्य? मुझे आपके द्वारा वर्णित किसी समस्या का बिल्कुल सामना नहीं करना पड़ता है। हालांकि, आप बेस यूआरएल के उसी पृष्ठ पर यूआरएल प्राप्त करने में अपना कोड ले जाने का प्रयास कर सकते हैं। मैंने कई बार कोशिश की है और यह सुनिश्चित कर लें कि स्थानीय स्टोरेज उसी पृष्ठ पर काम करेगा।

+0

GetItem और, क्या यह चेतन करना प्रतीत नहीं होता है मूल्य के माध्यम से पारित किया जा रहा के साथ ठीक काम कर रहा है scrollTo कि मूल्य की आईडी से मेल खाता पृष्ठ पर स्थान .. – woolm110

1

मैं जोड़ने वहाँ cordova.js कि localStorage बनाने के एंड्रॉयड पर काम नहीं करते की 2.6.0 संस्करण पर एक बग है कि चाहते हैं:

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

2.5.0 संस्करण पर यह पूरी तरह से काम करता है , और यह पहले से ही 2.7.0 आरसी पर ठीक है।

संबंधित मुद्दे