Comenzando
Instalación
Section titled “Instalación”npm install @capgo/capacitor-downloadernpx cap syncyarn add @capgo/capacitor-downloadernpx cap syncpnpm add @capgo/capacitor-downloadernpx cap syncbun add @capgo/capacitor-downloadernpx cap syncEjemplo de uso
Section titled “Ejemplo de uso”import { CapacitorDownloader } from '@capgo/capacitor-downloader';
// Iniciar una descargaconst downloadId = 'my-download-001';await CapacitorDownloader.download({ id: downloadId, url: 'https://example.com/large-file.zip', destination: '/downloads/large-file.zip', headers: { 'Authorization': 'Bearer token123' }, network: 'wifi-only', priority: 'high'});
// Escuchar actualizaciones de progresoCapacitorDownloader.addListener('downloadProgress', (data) => { console.log(`Descarga ${data.id}: ${data.progress}% completada`); console.log(`Descargado: ${data.bytesDownloaded}/${data.totalBytes} bytes`);});
// Manejar la finalizaciónCapacitorDownloader.addListener('downloadCompleted', (data) => { console.log(`Descarga completada: ${data.id}`); console.log(`Archivo guardado en: ${data.path}`);});
// Manejar erroresCapacitorDownloader.addListener('downloadFailed', (error) => { console.error(`Descarga fallida: ${error.id}`, error.message);});
// Pausar una descargaawait CapacitorDownloader.pause(downloadId);
// Reanudar la descargaawait CapacitorDownloader.resume(downloadId);
// Verificar estado de descargaconst status = await CapacitorDownloader.checkStatus(downloadId);console.log('Estado de descarga:', status);
// Detener la descargaawait CapacitorDownloader.stop(downloadId);Métodos principales de API
Section titled “Métodos principales de API”Gestión de descargas
Section titled “Gestión de descargas”download(options)- Iniciar una nueva descarga de archivopause(id)- Pausar una descarga en cursoresume(id)- Reanudar una descarga pausadastop(id)- Detener y cancelar una descargacheckStatus(id)- Obtener el estado actual de descarga
Operaciones de archivos
Section titled “Operaciones de archivos”getFileInfo(path)- Recuperar información y metadatos del archivo
Configuración de descarga
Section titled “Configuración de descarga”interface DownloadOptions { id: string; // Identificador único de descarga url: string; // URL de origen de descarga destination: string; // Ruta de guardado local headers?: Record<string, string>; // Encabezados HTTP personalizados network?: 'cellular' | 'wifi-only'; // Restricciones de red priority?: 'high' | 'normal' | 'low'; // Prioridad de descarga}Escuchadores de eventos
Section titled “Escuchadores de eventos”El plugin proporciona manejo integral de eventos:
downloadProgress- Rastrear el progreso de descarga en tiempo realdownloadCompleted- Manejar la finalización exitosa de descargadownloadFailed- Manejar errores y fallos de descarga
Configuración de red
Section titled “Configuración de red”Descargas solo por WiFi
Section titled “Descargas solo por WiFi”await CapacitorDownloader.download({ id: 'large-file', url: 'https://example.com/video.mp4', destination: '/downloads/video.mp4', network: 'wifi-only' // Restringe solo a redes WiFi});Gestión de prioridades
Section titled “Gestión de prioridades”// Descarga de alta prioridadawait CapacitorDownloader.download({ id: 'urgent-update', url: 'https://example.com/update.zip', destination: '/downloads/update.zip', priority: 'high'});Estados de descarga
Section titled “Estados de descarga”Las descargas pueden estar en varios estados:
- Pending: En cola para descarga
- Running: Descargando actualmente
- Paused: Detenida temporalmente
- Completed: Finalizada exitosamente
- Failed: Encontró un error
- Stopped: Cancelada manualmente
Información del archivo
Section titled “Información del archivo”// Obtener detalles del archivoconst fileInfo = await CapacitorDownloader.getFileInfo('/downloads/my-file.pdf');console.log('Tamaño del archivo:', fileInfo.size);console.log('Última modificación:', fileInfo.lastModified);console.log('Tipo MIME:', fileInfo.mimeType);Mejores prácticas
Section titled “Mejores prácticas”- Usa IDs de descarga únicos para evitar conflictos
- Implementa manejo de errores apropiado para fallos de red
- Considera el espacio de almacenamiento antes de iniciar descargas grandes
- Usa el modo solo WiFi para archivos grandes para preservar datos móviles
- Limpia las descargas completadas para gestionar el almacenamiento