Vai al contenuto

Iniziare

  1. Installa il plugin

    Terminal window
    npm i @capgo/capacitor-photo-library
  2. Sincronizza piattaforme

    Terminal window
    npx cap sync
  • iOS: Aggiorna Info.plist con NSPhotoLibraryUsageDescription (e NSPhotoLibraryAddUsageDescription se 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.
import { PhotoLibrary } from '@capgo/capacitor-photo-library';
const { state } = await PhotoLibrary.requestAuthorization();
if (state !== 'authorized' && state !== 'limited') {
throw new Error('Accesso foto negato');
}
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 }).

const selection = await PhotoLibrary.pickMedia({
selectionLimit: 5,
includeVideos: true,
});
console.log('Utente ha selezionato', selection.assets.length, 'elementi');

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.