En aquest tema, aprendrem com accedir i gestionar l'emmagatzematge del dispositiu utilitzant Apache Cordova. Això inclou la lectura i escriptura de fitxers, així com la gestió de directoris. Aquestes habilitats són essencials per a moltes aplicacions mòbils que necessiten emmagatzemar dades localment.
Objectius del tema
- Comprendre com funciona l'API d'emmagatzematge de Cordova.
- Aprendre a llegir i escriure fitxers en el dispositiu.
- Gestionar directoris i fitxers.
Conceptes clau
- File API: Una API que permet la manipulació de fitxers i directoris en el dispositiu.
- FileSystem: Representa el sistema de fitxers del dispositiu.
- FileEntry: Representa un fitxer en el sistema de fitxers.
- DirectoryEntry: Representa un directori en el sistema de fitxers.
Configuració prèvia
Abans de començar, assegura't que tens un projecte Cordova configurat. Si no ho has fet, revisa el mòdul 1 per a la configuració inicial.
Instal·lació del plugin de fitxers
Per accedir a l'emmagatzematge del dispositiu, necessitem instal·lar el plugin de fitxers de Cordova. Pots fer-ho executant la següent comanda:
Lectura i escriptura de fitxers
Escriptura de fitxers
A continuació, es mostra un exemple de com escriure dades en un fitxer:
document.addEventListener('deviceready', function() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { fileSystem.root.getFile("example.txt", { create: true, exclusive: false }, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { var dataObj = new Blob(['Hello, world!'], { type: 'text/plain' }); fileWriter.write(dataObj); fileWriter.onwriteend = function() { console.log("Successful file write..."); }; fileWriter.onerror = function(e) { console.log("Failed file write: " + e.toString()); }; }); }, onError); }, onError); }); function onError(error) { console.log("Error: " + error.code); }
Explicació del codi
- requestFileSystem: Sol·licita accés al sistema de fitxers del dispositiu.
- getFile: Obté una referència a un fitxer (crea el fitxer si no existeix).
- createWriter: Crea un objecte
FileWriter
per escriure en el fitxer. - write: Escriu dades en el fitxer.
- onwriteend: Es crida quan l'escriptura és exitosa.
- onerror: Es crida quan hi ha un error durant l'escriptura.
Lectura de fitxers
A continuació, es mostra un exemple de com llegir dades d'un fitxer:
document.addEventListener('deviceready', function() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { fileSystem.root.getFile("example.txt", { create: false, exclusive: false }, function(fileEntry) { fileEntry.file(function(file) { var reader = new FileReader(); reader.onloadend = function() { console.log("Successful file read: " + this.result); }; reader.readAsText(file); }, onError); }, onError); }, onError); }); function onError(error) { console.log("Error: " + error.code); }
Explicació del codi
- getFile: Obté una referència a un fitxer existent.
- file: Obté un objecte
File
per llegir el fitxer. - FileReader: Crea un objecte
FileReader
per llegir el contingut del fitxer. - readAsText: Llegeix el fitxer com a text.
- onloadend: Es crida quan la lectura és exitosa.
Gestió de directoris
Creació de directoris
A continuació, es mostra un exemple de com crear un directori:
document.addEventListener('deviceready', function() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { fileSystem.root.getDirectory("exampleDir", { create: true, exclusive: false }, function(dirEntry) { console.log("Directory created: " + dirEntry.fullPath); }, onError); }, onError); }); function onError(error) { console.log("Error: " + error.code); }
Explicació del codi
- getDirectory: Obté una referència a un directori (crea el directori si no existeix).
- fullPath: Retorna el camí complet del directori creat.
Exercicis pràctics
Exercici 1: Crear i escriure en un fitxer
- Crea un fitxer anomenat
notes.txt
. - Escriu el text "Aquest és un fitxer de notes" en el fitxer.
- Mostra un missatge de consola quan l'escriptura sigui exitosa.
Exercici 2: Llegir d'un fitxer
- Llegeix el contingut del fitxer
notes.txt
creat en l'exercici anterior. - Mostra el contingut del fitxer en la consola.
Exercici 3: Crear un directori i un fitxer dins d'ell
- Crea un directori anomenat
documents
. - Crea un fitxer anomenat
info.txt
dins del directoridocuments
. - Escriu el text "Informació important" en el fitxer
info.txt
.
Solucions
Solució a l'exercici 1
document.addEventListener('deviceready', function() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { fileSystem.root.getFile("notes.txt", { create: true, exclusive: false }, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { var dataObj = new Blob(['Aquest és un fitxer de notes'], { type: 'text/plain' }); fileWriter.write(dataObj); fileWriter.onwriteend = function() { console.log("Successful file write..."); }; fileWriter.onerror = function(e) { console.log("Failed file write: " + e.toString()); }; }); }, onError); }, onError); }); function onError(error) { console.log("Error: " + error.code); }
Solució a l'exercici 2
document.addEventListener('deviceready', function() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { fileSystem.root.getFile("notes.txt", { create: false, exclusive: false }, function(fileEntry) { fileEntry.file(function(file) { var reader = new FileReader(); reader.onloadend = function() { console.log("Successful file read: " + this.result); }; reader.readAsText(file); }, onError); }, onError); }, onError); }); function onError(error) { console.log("Error: " + error.code); }
Solució a l'exercici 3
document.addEventListener('deviceready', function() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { fileSystem.root.getDirectory("documents", { create: true, exclusive: false }, function(dirEntry) { dirEntry.getFile("info.txt", { create: true, exclusive: false }, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { var dataObj = new Blob(['Informació important'], { type: 'text/plain' }); fileWriter.write(dataObj); fileWriter.onwriteend = function() { console.log("Successful file write..."); }; fileWriter.onerror = function(e) { console.log("Failed file write: " + e.toString()); }; }); }, onError); }, onError); }, onError); }); function onError(error) { console.log("Error: " + error.code); }
Conclusió
En aquest tema, hem après com accedir i gestionar l'emmagatzematge del dispositiu utilitzant Apache Cordova. Hem cobert la lectura i escriptura de fitxers, així com la creació i gestió de directoris. Aquestes habilitats són fonamentals per a moltes aplicacions mòbils que necessiten emmagatzemar dades localment. En el següent tema, explorarem com gestionar la informació de la xarxa utilitzant Cordova.
Curs d'Apache Cordova
Mòdul 1: Introducció a Apache Cordova
- Què és Apache Cordova?
- Configuració del teu entorn de desenvolupament
- Creació del teu primer projecte Cordova
- Comprensió de l'estructura del projecte
Mòdul 2: Conceptes bàsics i APIs
- Plugins de Cordova
- Ús de l'API del dispositiu
- Accés a l'emmagatzematge del dispositiu
- Gestió de la informació de la xarxa
- Interacció amb la càmera
Mòdul 3: Interfície d'usuari i experiència d'usuari
- Construcció d'una interfície d'usuari responsiva
- Ús de Cordova amb frameworks (per exemple, Angular, React)
- Gestió de l'entrada de l'usuari
- Implementació de la navegació
Mòdul 4: Funcions avançades de Cordova
- Desenvolupament de plugins personalitzats
- Ús de codi natiu
- Optimització del rendiment
- Depuració i proves
Mòdul 5: Desplegament i distribució
- Construcció per a diferents plataformes
- Signatura i publicació d'aplicacions
- Directrius i millors pràctiques de l'App Store
- Integració i desplegament continus
Mòdul 6: Estudis de cas i aplicacions del món real
- Estudi de cas: Construcció d'una aplicació de llista de tasques
- Estudi de cas: Construcció d'una aplicació del temps
- Estudi de cas: Construcció d'una aplicació de xarxes socials
- Lliçons apreses i millors pràctiques