Empezando
-
Instala el complemento
Ventana de terminal npm i @capgo/capacitor-photo-libraryVentana de terminal pnpm add @capgo/capacitor-photo-libraryVentana de terminal yarn add @capgo/capacitor-photo-libraryVentana de terminal bun add @capgo/capacitor-photo-library -
Sincronizar plataformas
Ventana de terminal npx cap syncVentana de terminal pnpm cap syncVentana de terminal yarn cap syncVentana de terminal bunx cap sync
Permisos de plataforma
Section titled “Permisos de plataforma”- iOS: actualice
Info.plistconNSPhotoLibraryUsageDescription(yNSPhotoLibraryAddUsageDescriptionsi planea guardar medios). - Android: Para Android 13+, declara los permisos de foto/video (
READ_MEDIA_IMAGES,READ_MEDIA_VIDEO). Capacitor 5 maneja esto automáticamente, pero verifica los manifiestos personalizados.
Solicitar acceso
Section titled “Solicitar acceso”import { PhotoLibrary } from '@capgo/capacitor-photo-library';
const { state } = await PhotoLibrary.requestAuthorization();if (state !== 'authorized' && state !== 'limited') { throw new Error('Photo access denied');}Cargar la galería
Section titled “Cargar la galería”import { Capacitor } from '@capacitor/core';
const { assets, hasMore, nextPage } = await PhotoLibrary.getLibrary({ limit: 100, includeAlbums: false, thumbnailWidth: 256, thumbnailHeight: 256,});
const gallery = assets.map((asset) => ({ id: asset.id, fileName: asset.fileName, created: asset.creationDate, thumbnailUrl: asset.thumbnail ? asset.thumbnail.webPath ?? Capacitor.convertFileSrc(asset.thumbnail.path) : undefined, photoUrl: asset.file ? asset.file.webPath ?? Capacitor.convertFileSrc(asset.file.path) : undefined,}));Para recuperar páginas adicionales, llame a PhotoLibrary.getLibrary({ cursor: nextPage }).
Permitir que los usuarios elijan medios
Section titled “Permitir que los usuarios elijan medios”const selection = await PhotoLibrary.pickMedia({ selectionLimit: 5, includeVideos: true,});
console.log('User selected', selection.assets.length, 'items');Limpiar archivos almacenados en caché
Section titled “Limpiar archivos almacenados en caché”Las miniaturas generadas y las exportaciones se almacenan en el directorio de caché de la aplicación en photoLibrary. Elimínelos con su archivo preferido API cuando necesite recuperar almacenamiento.