2012-06-12 18 views
5

Sto lavorando con PhoneGap versione 1.8 (cordova-1.8.0.js) e sto tentando di creare un'app per Android. Sto eseguendo il debug su un dispositivo reale tramite Eclipse.PhoneGap - Impossibile scrivere su file per Android

Sto provando a scrivere del testo in un file. Sto usando il codice di esempio API fornite da PhoneGap a

http://docs.phonegap.com/en/1.8.0/cordova_file_file.md.html#FileWriter

ho già stato in grado di creare applicazioni con il mio attuale set-up quindi so che funziona bene, io sono solo in grado di scrivere su un file . Ho trascorso ore su questo problema, ma continuo a ricevere il seguente messaggio di errore:

E/Web Console(27356): Uncaught ReferenceError: LocalFileSystem is not defined at file:///android_asset/www/debug.js:28 

linea 28 essendo

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 

Sto usando il codice esatto dal sito Web API.

Qualche suggerimento su cosa potrei fare male?

Forse non sto importando le librerie Java corrette nella configurazione di PhoneGap?

Ho il seguente importati:

import android.os.Bundle; 
import org.apache.cordova.*; 
import android.view.WindowManager; 
import android.view.KeyEvent; 

Grazie.

EDIT:

stavo usando

$(document).ready(function() { 

Invece del

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

come sarebbe mai il fuoco. Ecco il mio codice esatto, inoltre ho il

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

attivo all'interno del mio progetto phonegap.

codice completo:

<!DOCTYPE html> 
<html> 
<head> 
<title>FileWriter Example</title> 

<script type="text/javascript" charset="utf-8" src="cordova-1.8.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() { 

    alert("device ready"); // this never gets called 

    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> 

Ho anche buttato in una funzione di allarme sulla chiamata pronto dispositivo, non viene mai chiamato a tutti.

Qualche idea su come questo codice non funziona?

L'unico modo in cui posso mai ottenere il codice a fuoco in fase di start up sta usando

$(document).ready(function() { 

}); 

che non è buono Credo che per cercare di chiamare il file writter come io continuo a ricevere lo stesso messaggio di errore.

risposta

1

Il problema non è con la scrittura di un file se deviceready non è sparare - è con il modo in cui il PhoneGap app è messa a punto.

È necessario importare il seguente nella vostra attività principale:

import android.app.Activity; // used to fire deviceready 
import android.os.Bundle; 
import org.apache.cordova.*; 
+0

ho aggiornato il mio post.Se uso la funzione deviceready, non riesco nemmeno a farlo sparare. C'è un problema noto con questa funzione e PhoneGap per Android? Ho passato ore su questo problema senza alcun successo. Qualsiasi aiuto sarebbe molto apprezzato. Grazie. – user1017063

+0

@ user1017063 controlla la mia modifica. – AustinAllover

+1

@AustinAllover Lo stesso problema che sto affrontando in iOS. Come posso risolvere questo. mi aiuti per favore –

Problemi correlati