Necesito implementar una función en mi aplicación Ionic2
donde los usuarios pueden descargar un archivo de video específico en la aplicación Ionic2.
Al revisar la sección Ionic Native
, encontré que los siguientes complementos están disponibles:
Pero no pude encontrar nada como ' cordova-plugin-file-transfer ' donde existe un método específico como DOWNLOAD .
¿Cuál podría ser la salida?
Por favor recomiende.
Debe usar el complemento " Transferir " para descargar un archivo en ionic2
Puede instalar el complemento con este comando
ionic plugin add cordova-plugin-file-transfer npm install --save @ionic-native/transfer
y luego importarlo
import { Transfer, FileUploadOptions, TransferObject } from '@ionic-native/transfer';
constructor de conjunto
constructor(private transfer: Transfer, private file: File) { }
Luego use esta función para descargar el archivo usando url
download() { const url = 'http://www.example.com/file.pdf'; fileTransfer.download(url, this.file.dataDirectory + 'file.pdf').then((entry) => { console.log('download complete: ' + entry.toURL()); }, (error) => { // handle error }); }
Espero que te ayude También puedes cargar un archivo usando este complemento
Ante todo. El complemento de transfer
al que todos se refieren aquí está en desuso. Nunca debe usar un complemento obsoleto si hay una alternativa.
Con mucho gusto, Ionic le ofrece un complemento nativo Http alternativo
El servicio HTTP tiene métodos uploadFile
y downloadFile
que puede usar para manejar la carga/descarga de archivos.
El método downloadFile
tiene 4 parámetros: url
, body
, headers
, filepath
.
En el caso más simple, llamar a este método será así:
this.nativeHttp.downloadFile(urlWithFile, {}, {}, fileNameToSave)
Devuelve la promesa que se resuelve con la instancia de FileEntry
que puede usar para leer el sistema de archivos en el futuro (si lo necesita)
fileNameToSave
que puede obtener de la clase File
. Básicamente, puede ser this.file.tempDirectory + fileName
o puede elegir otros directorios de file
como this.file.dataDirectory + fileName
Nuevamente, NUNCA debe usar complementos/paquetes obsoletos. Se llaman obsoletos por una razón.
PD: si desea abrir el archivo descargado, puede hacerlo con el complemento @ionic-native/file-opener como este:
this.file.resolveLocalFilesystemUrl(fileEntry.toURL()) .then((entry: FileEntry) => { entry.file(meta => { this.fileOpener.open(fileEntry.toURL(), meta.type) }, error => {}); })