Iniziare
-
Installa il plugin
Terminal window npm i @capgo/capacitor-photo-libraryTerminal window pnpm add @capgo/capacitor-photo-libraryTerminal window yarn add @capgo/capacitor-photo-libraryTerminal window bun add @capgo/capacitor-photo-library -
Sincronizza piattaforme
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
Permessi piattaforma
Section titled “Permessi piattaforma”- iOS: Aggiorna
Info.plistconNSPhotoLibraryUsageDescription(eNSPhotoLibraryAddUsageDescriptionse prevedi di salvare media). - Android: Per Android 13+, dichiara i permessi foto/video (
READ_MEDIA_IMAGES,READ_MEDIA_VIDEO). Capacitor 5 gestisce questo automaticamente, ma ricontrolla i manifest personalizzati.
Richiedi accesso
Section titled “Richiedi accesso”import { PhotoLibrary } from '@capgo/capacitor-photo-library';
const { state } = await PhotoLibrary.requestAuthorization();if (state !== 'authorized' && state !== 'limited') { throw new Error('Accesso foto negato');}Carica la galleria
Section titled “Carica la galleria”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,}));Per recuperare pagine aggiuntive, chiama PhotoLibrary.getLibrary({ cursor: nextPage }).
Lascia che gli utenti selezionino media
Section titled “Lascia che gli utenti selezionino media”const selection = await PhotoLibrary.pickMedia({ selectionLimit: 5, includeVideos: true,});
console.log('Utente ha selezionato', selection.assets.length, 'elementi');Pulisci file in cache
Section titled “Pulisci file in cache”Le miniature generate e le esportazioni sono archiviate nella directory cache dell’app sotto photoLibrary. Rimuovile con la tua API file preferita quando hai bisogno di recuperare spazio di archiviazione.