Saltar al contenido

Primeros pasos

GitHub

Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:

Ventana de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Luego usa el siguiente prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-file-sharer` plugin in my project.

Si prefieres la configuración manual, instala el plugin ejecutando estos comandos y sigue las instrucciones de cada plataforma:

Ventana de terminal
npm install @capgo/capacitor-file-sharer
npx cap sync
import { FileSharer } from '@capgo/capacitor-file-sharer';
import { FileSharer } from '@capgo/capacitor-file-sharer';
await FileSharer.share({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
});
import { FileSharer } from '@capgo/capacitor-file-sharer';
const result = await FileSharer.save({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
});
console.log(result);
  • Sync nativo: ejecuta npx cap sync tras actualizar los plugins.
  • Fuente de verdad: confianza src/definitions.ts en el repo de GitHub.
import { FileSharer } from '@capgo/capacitor-file-sharer';
await FileSharer.share({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
title: 'Quarterly report',
text: 'Attached report',
});

base64Data puede ser un string base64 puro o una data URL como data:application/pdf;base64,....

await FileSharer.share({
filename: 'export.zip',
contentType: 'application/zip',
path: fileUri,
});

Las implementaciones nativas aceptan rutas locales, file:// URLs, Android content:// URIs y Capacitor _capacitor_file_ URLs.

const result = await FileSharer.save({
filename: 'backup.zip',
contentType: 'application/zip',
base64Data: zipBase64,
android: {
saveDirectory: 'downloads',
relativePath: 'Download/My App',
},
});
console.log(result.uri);

Los directorios de guardado en Android son downloads, pictures, movies, music, y documents. En Android 10 y versiones posteriores, el plugin escribe mediante MediaStore. En Android 9 y anteriores, el guardado público usa el permiso WRITE_EXTERNAL_STORAGE del manifest con maxSdkVersion=28.

await FileSharer.share({
filename: 'photo.jpg',
contentType: 'image/jpeg',
path: photoUri,
title: 'Site photo',
subject: 'Photo export',
text: 'Captured during inspection.',
});

text se pasa como EXTRA_TEXT en Android y como un segundo elemento de actividad en iOS.

export interface ShareFileOptions {
filename: string;
base64Data?: string;
path?: string;
contentType?: string;
text?: string;
title?: string;
subject?: string;
android?: AndroidFileSharerOptions;
}
export interface AndroidFileSharerOptions {
chooserTitle?: string;
saveDirectory?: 'downloads' | 'pictures' | 'movies' | 'music' | 'documents';
relativePath?: string;
}
export interface SaveFileResult {
uri?: string;
}
  • ERR_PARAM_NO_FILENAME - filename falta o está en blanco.
  • ERR_PARAM_NO_DATA - ni base64Data ni path se proporcionó.
  • ERR_PARAM_DATA_INVALID - no se pudo decodificar el input base64.
  • ERR_LOCAL_FILE_NOT_FOUND - no se pudo abrir la ruta local o el URI de contenido proporcionados.
  • ERR_FILE_CACHING_FAILED - no se pudo escribir el archivo temporal nativo.
  • ERR_FILE_SAVE_FAILED - Android no pudo guardar el archivo en el almacenamiento público.
  • ERR_ACTIVITY_NOT_FOUND - Android no pudo abrir el destino para compartir.
  • USER_CANCELLED - se cerró el share sheet de iOS sin completar la acción.

Esta página rastrea el src/definitions.ts. Vuelve a ejecutar el sync cuando el API público cambie en upstream.

Si estás usando Primeros pasos para planificar el almacenamiento y la gestión de archivos, conéctalo con Usando @capgo/capacitor-file-sharer para la capacidad nativa en Using @capgo/capacitor-file-sharer, @capgo/capacitor-data-storage-sqlite para el detalle de implementación en @capgo/capacitor-data-storage-sqlite, Uso de @capgo/capacitor-data-storage-sqlite para la funcionalidad nativa en Uso de @capgo/capacitor-data-storage-sqlite, @capgo/capacitor-file para el detalle de implementación en @capgo/capacitor-file, y Uso de @capgo/capacitor-file para la funcionalidad nativa en Uso de @capgo/capacitor-file.