2012-05-05 40 views
5

Phonegap [cordova 1.7.0] kullanarak IOS'daki dosyalarla çalışmaya çalışıyorum. Dosyalara nasıl erişileceğini okudum ve telefon boşluğunun API Documentation numarasını okuyun. Ama bilmiyorum, dosya okunduğunda nerede yazılacak? & Metin, görüntü veya metnin iPhone ekranında içerdiği her şeyi nasıl verebilirim? İşte Phonegap kullanarak dosyalara erişme

ben kullanıyorum kodu: Eğer PhoneGap (Cordova) 1.7.0 kullanıyorsanız

function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
} 

function gotFS(fileSystem) { 
    fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail); 
} 

function gotFileEntry(fileEntry) { 
    fileEntry.file(gotFile, fail); 
} 

function gotFile(file){ 
    readDataUrl(file); 
    readAsText(file); 
} 

function readDataUrl(file) { 
    var reader = new FileReader(); 
    reader.onloadend = function(evt) { 
     console.log("Read as data URL"); 
     console.log(evt.target.result); 
    }; 
    reader.readAsDataURL(file); 
} 

function readAsText(file) { 
    var reader = new FileReader(); 
    reader.onloadend = function(evt) { 
     console.log("Read as text"); 
     console.log(evt.target.result); 
    }; 
    reader.readAsText(file); 
} 

function fail(evt) { 
    console.log(evt.target.error.code); 
} 

cevap

4

ihtiyacı:

function ReadFile() { 
    var onSuccess = function (fileEntry) { 
    var reader = new FileReader(); 
    reader.onloadend = function (evt) { 
     console.log("read success"); 
     console.log(evt.target.result); 
     document.getElementById('file_status').innerHTML = evt.target.result; 
    }; 
    reader.onerror = function (evt) { 
     console.log("read error"); 
     console.log(evt.target.result); 
     document.getElementById('file_status').innerHTML = "read error: " + evt.target.error; 
    }; 

    reader.readAsText(fileEntry); // Use reader.readAsURL to read it as a link not text. 
    }; 

    console.log("Start getting entry"); 
    getEntry(true, onSuccess, { create: false }); 
}; 
+1

Nerede okuduğumu istediğiniz dosyayı belirtebilirim? – donkey

+0

+1 Dosyayı nerede bulabilirim? –

+0

@john_cat & oasisweng: Sorunuzu ele aldığımı düşündüğüm bir örnekle yorum ekledim. HTH! – sherb

3

, iOS çalışacak sayfayı takip, index.html aşağıdaki şablonu değiştirmek

<!DOCTYPE html> 
<html> 
    <head> 
    <title>FileWriter Example</title> 
    <script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script> 
    <script type="text/javascript" charset="utf-8"> 

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

    // Cordova is ready 
    // 
    function onDeviceReady() { 
     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
    } 

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

    function gotFileEntry(fileEntry) { 
     fileEntry.createWriter(gotFileWriter, fail); 
    } 

    function gotFileWriter(writer) { 
     writer.onwriteend = function(evt) { 
      console.log("contents of file now 'some sample text'"); 
      writer.truncate(11); 
      writer.onwriteend = function(evt) { 
       console.log("contents of file now 'some sample'"); 
       writer.seek(4); 
       writer.write(" different text"); 
       writer.onwriteend = function(evt){ 
        console.log("contents of file now 'some different text'"); 
       } 
      }; 
     }; 
     writer.write("some sample text"); 
    } 
    function fail(error) { 
     console.log(error.code); 
    } 
    </script> 
    </head> 
    <body> 
    <h1>Example</h1> 
    <p>Write File</p> 
    </body> 
</html>
durumda herkes benim için çalıştı ne
+1

Çok teşekkürler =) Ama =) –

+1

@sana serin ..... –

+0

Ama gerçekten teşekkür ederim =)) –

5

Cordova 3.5 (en azından),itibariyle 10 nesne sadece FileEntry nesnesini değil, File nesnesini kabul eder (önceki sürümlerden emin değilim).

İçeriği, bir yerel dosyaya readme.txt konsolu gönderecek bir örnek. Sana'nın örneğinden gelen fark, FileEntry.file(...) numaralı çağrıdır. Bu, FileReader.readAs işlevlerine yapılan çağrı için gereken File nesnesini sağlayacaktır. Ben okuma fonksiyonu için soruyordu

function readFile() { 
    window.requestFileSystem(window.LocalFileSystem.PERSISTENT, 0, function(fileSystem) { 
     fileSystem.root.getFile('readme.txt', 
      {create: false, exclusive: false}, function(fileEntry) { 
       fileEntry.file(function(file) { 
        var reader = new window.FileReader(); 
        reader.onloadend = function(evt) {console.log(evt.target.result);}; 
        reader.onerror = function(evt) {console.log(evt.target.result);}; 
        reader.readAsText(file); 
       }, function(e){console.log(e);}); 
      }, function(e){console.log(e);}); 
    }, function(e) {console.log(e);}); 
}