2013-03-24 11 views
5

पर काम नहीं करता है मैं स्थानीय स्टोरेज का एक उदाहरण बनाता हूं। जब मैं क्रोम वेब ब्राउज़र का उपयोग करता हूं, तो यह ठीक काम करता है। लेकिन जब मैं आईफोन एमुलेटर पर परीक्षण करता हूं, तो ऐसा नहीं होता है। कृपया मदद करे।लोकल स्टोरेज फोनगैप

function onclick(){ 
    window.localStorage.setItem("data","Nguyen Minh Binh"); 
} 

===========

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Page Title</title> 

     <meta name="viewport" content="width=device-width, initial-scale=1"> 
      <script src="cordova-2.5.0.js"></script> 

      <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css" /> 
      <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> 
      <script src="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.js"></script> 
      <script src="js/index.js" type="text/javascript" ></script> 
    </head> 

    <body> 
     <a data-role="button" href="DemoWOrklightJQM/index.html" data-prefetch onclick="onclick()">Click me</a> 
    </body> 
</html> 

यहाँ कोड मैं कहाँ सहेजे गए डेटा को प्राप्त करने की कोशिश है: यहाँ स्थानीय भंडारण मान सेट करने के लिए अपने कोड है:

<!DOCTYPE HTML> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
      <title>DemoSimpleControls</title> 
      <meta name="viewport" 
       content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> 
       <link rel="shortcut icon" href="images/favicon.png"> 
        <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
         <link href="jqueryMobile/jquery.mobile-1.3.0.css" rel="stylesheet"> 
          <link rel="stylesheet" href="css/DemoSimpleControls.css"> 
           <script> 
            window.$ = window.jQuery = WLJQ; 
            </script> 
           <script src="jqueryMobile/jquery.mobile-1.3.0.js"></script> 
           <script src="../js/jquery-1.9.1.min.js"></script> 
           <script> 
            $(document).ready(function(){ 
                 $("#mysavedData").html("XYZ"); 
                 $("#mysavedData").html(window.localStorage.getItem("data")); 
                 }); 

           </script> 
           </head> 

    <body id="content" > 
     <div data-role="page" id="page"> 
      <div data-role="header" > 
       <a data-rel="back" href="#" >Back</a> 
       <h1>My page</h1> 

      </div> 
      <div data-role="content" style="padding: 15px" data-theme="e"> 
       <div id="mysavedData">My data</div> 

         <a href="#" onclick="getData(); return false;" data-role="button" id="button" data-theme="a" data-icon="home" data-iconpos="left" data-corners="true">Button</a> 
      </div> 

     </div> 
    </body> 
</html> 

संपादित करें: Whizkid747 के पर सुझाव देते हैं, मैं नीचे के रूप में स्क्रिप्ट स्रोत बदलने लेकिन यह अभी भी काम नहीं करता।

 <!DOCTYPE HTML> 
    <html> 
     <head> 
      <meta charset="UTF-8"> 
       <title>DemoSimpleControls</title> 
       <meta name=" 

viewport" 
       content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> 
       <link rel="shortcut icon" href="images/favicon.png"> 
        <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
         <link href="jqueryMobile/jquery.mobile-1.3.0.css" rel="stylesheet"> 
          <link rel="stylesheet" href="css/DemoSimpleControls.css"> 

           <script src="jqueryMobile/jquery.mobile-1.3.0.js"></script> 
           <script src="../js/jquery-1.9.1.min.js"></script> 
           < script type="text/javascript" charset="utf-8" src="../cordova-2.5.0.js"></script> 
           <script type="text/javascript" charset="utf-8"> 
            function onLoad(){ 
             document.addEventListener("deviceready", deviceready, false); 
            } 
            function deviceready(){ 
             $("#mysavedData").html("XYZ"); 
             $("#mysavedData").html(window.localStorage.getItem("data")); 
            } 

           </script> 
           </head> 

    <body id="content" onLoad="onLoad();" > 
     <div data-role="page" id="page"> 
      <div data-role="header" > 
       <a data-rel="back" href="#" >Back</a> 
       <h1>My page</h1> 

      </div> 
      <div data-role="content" style="padding: 15px" data-theme="e"> 
       <div id="mysavedData">My data</div> 

         <a href="#" onclick="getData(); return false;" data-role="button" id="button" data-theme="a" data-icon="home" data-iconpos="left" data-corners="true">Button</a> 
      </div> 

     </div> 
    </body> 
</html> 

EDIT2: OnDeviceReady पर localStorage स्थापित करने के लिए फिर अगले लाइनों इसे पाने के लिए प्रयास करें, लेकिन अभी भी काम नहीं करता।

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Contact Example</title> 
     <script src="js/jquery-1.9.1.min.js"> 
      </script> 
     <script type="text/javascript" charset="utf-8" src="cordova-2.5.0.js"></script> 
     <script src="https://raw.github.com/phonegap/phonegap/2.5.0rc1/lib/android/cordova-2.5.0rc1.js"></script> 
     <script type="text/javascript" charset="utf-8"> 

      // Wait for PhoneGap to load 
      // 
      document.addEventListener("deviceready", onDeviceReady, false); 

      // PhoneGap is ready 
      // 
      function onDeviceReady() { 
       window.localStorage.setItem("key", "minhbinh"); 
       var keyname = window.localStorage.key(i); 
       // keyname is now equal to "key" 
       var value = window.localStorage.getItem("key"); 
       // value is now equal to "value" 
       window.localStorage.removeItem("key"); 
       window.localStorage.clear(); 
       // localStorage is now empty 
       $("p#p1").text(value); 
      } 


      </script> 
    </head> 
    <body> 
     <h1>Example</h1> 
     <p id="p1">localStorage</p> 
    </body> 
</html> 

उत्तर

6

onDeviceReady event of PhoneGap को document.ready में अपने कोड ले जाएँ। onDeviceReady तब होता है जब आपको अपना कस्टम कोड निष्पादित करने की आवश्यकता होती है।

संपादित करें: * GitHub से स्थानीय स्तर पर और नहीं जोड़ा cordova.js साथ नीचे कोड का प्रयास करें *

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Contact Example</title> 
     <script src="js/jquery-1.9.1.min.js"> 
      </script> 
     <script type="text/javascript" charset="utf-8" src="cordova-2.5.0.js"></script> 
     <script src="cordova-2.5.0rc1.js"></script> 

    </head> 
    <body> 
     <h1>Example</h1> 
     <p id="p1">localStorage</p> 
     <script type="text/javascript"> 

      // Wait for PhoneGap to load 

      document.addEventListener("deviceready", onDeviceReady, false); 

      // PhoneGap is ready 

      function onDeviceReady() { 
       window.localStorage.setItem("key", "minhbinh"); 
       var keyname = window.localStorage.key(i); 
       // keyname is now equal to "key" 
       var value = window.localStorage.getItem("key"); 
       // value is now equal to "value" 
       //window.localStorage.removeItem("key"); 
       //window.localStorage.clear(); 
       // localStorage is now empty 
       $("p#p1").text(value); 
      } 


     </script> 
    </body> 
</html> 
+0

कृपया मेरे संपादित करें देखें। मैंने कोड को आपके सुझाव के रूप में बदल दिया है, लेकिन यह काम नहीं करता है। –

+0

मुझे लगता है कि आप इसे स्थापित करने से पहले स्थानीय संग्रहण से डेटा प्राप्त करने का प्रयास कर रहे हैं। क्या आप डिवाइस रीडी इवेंट में डेटा सेट कर सकते हैं और फिर इसे अगली पंक्ति में प्राप्त कर सकते हैं? – Whizkid747

+0

कृपया मेरा संपादन 2 देखें। मैंने स्थानीय स्टोरेज को डेविस रीडी पर सेट किया है और इसे अगली लाइन मिलती है, फिर भी काम नहीं करती है। –

2

IOS 6 पर एक समस्या है जब चल Cordova 2.1 (2.2 में ठीक किया गया) हुई थी: पहली बार ऐप चलाने पर स्थानीय स्टोरेज को शुरू करना काम नहीं करता है।

एक समाधान के लिए इस की जाँच करें: http://www.x-services.nl/cordova-localstorage-cleared-after-first-app-launch-ios6/369

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