FIle API – Phonegap?
¿Puede alguien explicar cómo listar una carpeta de archivos en una página usando la API del archivo Phonegap para Android?
Me gustaría listar todos los archivos .mp3
si es posible, pero he leído todos los documentos de phonegap ( http://docs.phonegap.com/en/1.0.0/phonegap_file_file.md.html ) y no puedo entenderlo en absoluto !
- Barra de estado Ocultar Cordova
- Cargue la primera página en la pantalla de bienvenida utilizando el teléfono en android
- Uso de SurfaceView en Cordova plugin
- ¿Cómo leer los códigos de barras usando Android Phonegap?
- Cordova - se niega a ejecutar el controlador de eventos en línea porque viola el siguiente contenido Política de seguridad
- ¿Son todos los permisos necesarios para PhoneGap en Android?
- El teléfono Android no produce sonido utilizando el plugin de teléfono de Córdoba y no da un mensaje de error
- Canvas.toDataURL no da como resultado datos de imagen / jpeg
- Mostrar varias líneas en la notificación push android Phonegap
- Problemas con el inicio de PhoneGap: Apache Cordova error
- HTTPS bloqueado para la construcción iónica - release android apk
- Android objetivo se cambia después de hacer cordova plataforma de actualización
- cordova android aplicación rechazada de google error de juego TrustManager
Es un poco de dolor en el @ $$ pero factible. Comienza con este código:
document.addEventListener("deviceready", onDeviceReady, false); // PhoneGap is ready // function onDeviceReady() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail); } function onFileSystemSuccess(fileSystem) { fileSystem.root.getDirectory("Music", {create: false, exclusive: false}, getDirSuccess, fail); } function getDirSuccess(dirEntry) { // Get a directory reader var directoryReader = dirEntry.createReader(); // Get a list of all the entries in the directory directoryReader.readEntries(readerSuccess,fail); } function readerSuccess(entries) { var i; for (i=0; i<entries.length; i++) { // Assuming everything in the Music directory is an mp3, go nuts // otherwise check entries[i].name to see if it ends with .mp3 } }
Estoy escribiendo todo este código de ejemplo fuera de un IDE por lo que puede haber errores, pero que debe llegar a ir.
Paul, ¿agregaste una función fail ()? Eso será requerido en el código de ejemplo de Simon. El ejemplo de docs de api tiene:
function fail(evt) { console.log(evt.target.error.code); }
También podría guardar un paso en el código de Simon si sólo quería una prueba de concepto, ya que fileSystem.root ya es un dirEntry (y le ahorra el paso potencialmente con errores de tener que usar un nombre de directorio como "Music" que podría o Podría no estar allí):
function onFileSystemSuccess(fileSystem) { var directoryReader = fileSystem.root.createReader(); // Get a list of all the entries in the directory directoryReader.readEntries(readerSuccess,fail); } function readerSuccess(entries) { var i;.......
Que funciona para mí.
Sin embargo, lo que obtengo son los contenidos del directorio raíz de la aplicación, al parecer, mi aplicación se llama be.qan.blaActivity, así que, si le pregunto por fileSystem.root.name
me dice "be.qan" y el fileSystem.root.path
no está definido. Por lo tanto, mi pregunta aquí sería: ¿cómo puedo salir de esta caja de arena, si es de hecho lo que estoy sentado, y puedo tener acceso a los directorios sd_card u otras partes del sistema de archivos (ya que iOS aún no tiene incluso externa almacenamiento)?
Lo que estoy obteniendo a través de nombres de archivo en readerSuccess
son nombres como "bases de datos", "app_database", "cache" y "lib" que ni siquiera aparecen cuando hago una búsqueda con Astro FileManager, Forman parte de un sistema de archivos virtual que Cordova está creando para la aplicación. Probablemente todavía hay mucho que me falta y la gente más bien informado de lo que puedo establecerme derecho, pero eso es lo que estoy adivinando hasta ahora.
Hola, uso este código y funciona para mí .. puede probarlo
$('#recordingList').on('pagecreate', function(event) { generateRecordingList(); }); function generateRecordingList(){ //request for the file system window.resolveLocalFileSystemURI("file:///sdcard/rem", onFileSystemSuccess, onError); } function onFileSystemSuccess(fileSystem){ alert("FileSystem success : " + fileSystem.name); } function onError(error){ alert(error.target.error.code); }
- Detalles de la solicitud de visualización de Retorfit – cuerpo, cabeceras, etc.
- Eclipse / Android no puede generar archivos R para ningún proyecto