2011-08-06 6 views
6

में पढ़ने फ़ाइल मैं writing/readingphonegap+android में एक फ़ाइल की कोशिश की, यहाँ की स्थापना की है:लेखन और phonegap

:

$(document).ready(function() { 
    document.addEventListener("deviceready", deviceready, true); 

    $(document).bind("deviceready", function(){ 
    //writeFile(); 
    //readFile(); 
    }); 
}); 

function deviceready() { 
    writeFile(); 
    readFile(); 
} 

// This is just to do this. 
function readFile() { 
    var d = navigator.file.read('/sdcard/foo.xml', success(), fail()); 
    console.warn(d); 
} 

function writeFile() { 
    navigator.file.write('/sdcard/foo.xml', "This is a test of writing to a file", 
      success(), fail()); 
} 

लेकिन Android 2.2 के लिए एमुलेटर पर, मैं निम्नलिखित त्रुटि संदेश मिला

08-06 14:21:29.428: INFO/Web Console(936): Error in success callback: Network Status1 = TypeError: Result of expression 'navigator.file' [undefined] is not an object. at file:///android_asset/www/phonegap.0.9.6.js:649 

क्या गुम हो सकता है और क्या कोशिश की जा सकती है?

+1

हो सकता है कि आप अपने कॉल में सफलता के बजाय सफलता() एक ही उपयोग कर रहे हैं वापस) विफल (के लिए चला जाता है –

उत्तर

-1

निम्नलिखित phonegap-1.0.0 के साथ Android पर मेरे लिए काम करता है:

<script type="text/javascript" charset="utf-8" src="css-js/phonegap-1.0.0.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.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 

    } 

    function gotFS(fileSystem) { 
     var path = "readme.txt"; 
     fileSystem.root.getFile(path, {create: true, exclusive: false}, gotFileEntry, fail); 

    } 

    function gotFileEntry(fileEntry) { 

     fileEntry.createWriter(gotFileWriter, fail); 
    } 

    function gotFileWriter(writer) { 
     writer.onwrite = function(evt) { 
      console.log("write success"); 
     }; 
     writer.write("some sample text"); 
</script> 
+1

आपने अभी उदाहरण कोड पोस्ट किया है। क्रेडिट देने के लिए भी लिंक किए बिना। – jlarson

+0

यह फ़ाइल को भी पढ़ा नहीं है –

+0

लेखन फ़ाइल काम करता है मेरे लिए ठीक है –

1

मैं FileReady और FileWriter API का उपयोग करने का प्रयास करूंगा।

http://docs.phonegap.com/phonegap_file_file.md.html#FileReader

+0

विफल किया जाना चाहिए त्रुटि संदेश कहता है कि 'नेविगेटर' अनिर्धारित है, इससे कोई फर्क नहीं पड़ता कि मैंने इसके बाद क्या रखा, ई। जी। फ़ाइल या फ़ाइल एमजीआर। मैंने आधिकारिक डेमो में विधियों को डालने का भी प्रयास किया, जहां सेटअप 100% ठीक होना चाहिए। – Demonick

2

यह भी एंड्रॉयड 2.2 में काम करता है। आप लोड() कहते हैं; बॉडी के ऑनलोड से फ़ंक्शन, और कुछ बटन के ऑनक्लिक से FileFromSDCard (स्ट्रिंग) लिखें, उस स्ट्रिंग पैरामीटर के रूप में गुजर रहा है जिसे आप फ़ाइल में लिखना चाहते हैं।

<script type="text/javascript" charset="utf-8"> 

// Event listener  
function load() { 
    document.addEventListener('deviceready', init, false); 
} 

// Called when device is ready - Do nothing 
    function init() { 
}  

// Called to write file to card 
    function writeFileFromSDCard(param) { 

    var writer = new FileWriter("/sdcard/write.txt"); 
    writer.write(param + "\n", false);    
    alert("file Written to SD Card"); 
} 

</script> 
+0

क्या मैं आपसे पूछ सकता हूं कि आप एपीआई का उपयोग कैसे करें: FileWriter? – Stallman

+0

आपसे पूछता है कि आप एपीआई का उपयोग कैसे करते हैं: FileWriter? मैं http://www.w3.org/TR/file-system-api/#dfn-filewriter का संदर्भ देता हूं लेकिन इस उपकरण का उल्लेख नहीं किया गया: FileWriter ("path"); और जब मैं कक्षा मीडिया (~) का उपयोग करता हूं, तो पथ की सेटिंग को "/ sdcard /" की आवश्यकता नहीं होती है और हमें फ़ाइल पथ में इस पथ को जोड़ने की आवश्यकता क्यों है? मुझे एपीआई के बारे में थोड़ा विवरण मिला। कृपया मदद करें, धन्यवाद !!! – Stallman

+0

हम किस तरह का रास्ता पास कर सकते हैं? मुझे इसके बारे में कोई विशिष्ट जानकारी भी नहीं मिली है? – trainoasis

1

यहां कई लिंक के आधार पर मैं आया हूं। मैं यह भी करने के लिए खोज रहा था। मैं एक संदर्भ http://www.digitalnoiz.com/mobile-development/mobile-file-explorer-with-phonegapcordova-and-jquery-mobile-part-1/ के साथ-साथ Phonegap दस्तावेज़ API संदर्भ के रूप में इस साइट का इस्तेमाल किया

function displayMessage(msg) 
{ 
    navigator.notification.alert(msg); 
} 

function loadDirectories(fileSystem) 
{ 
    directoryEntry = fileSystem.root; 

    var directoryReader = directoryEntry.createReader(); 

    directoryReader.readEntries(function(entries){ 
      var sOutput = ""; 
      for(var i=0; i < entries.length; i++) 
      { 
       if(!entries[i].isDirectory) 
       { 
        fileSystem.root.getFile(entries[i].name,null,gotFileEntry,fail); 
       } 
      }        
      //displayMessage(sOutput); 
     },fail); 
} 
function gotFileEntry(fileEntry) 
{ 
    fileEntry.file(function(file){ 
     var reader = new FileReader(); 
     reader.onloadend = function(evt){ 
     displayMessage(evt.target.result); 
    }; 
reader.readAsText(file);       
    },fail); 
} 
function failFile(evt) 
{ 
    displayMessage(evt.target.error.code); 
} 
function fail(error) 
{ 
    displayMessage("Failed to list directory contents: " + error.code); 
} 
function onBodyLoad() 
{  
document.addEventListener("deviceready", onDeviceReady, false); 
}  
function onDeviceReady() 
{ 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, loadDirectories, fail); 
}