Langsung ke konten

Memulai

  1. Instal plugin

    Terminal window
    npm i @capgo/capacitor-photo-library
  2. Sinkronkan platform

    Terminal window
    npx cap sync
  • iOS: Perbarui Info.plist dengan NSPhotoLibraryUsageDescription (dan NSPhotoLibraryAddUsageDescription jika Anda berencana menyimpan media).
  • Android: Untuk Android 13+, deklarasikan izin foto/video (READ_MEDIA_IMAGES, READ_MEDIA_VIDEO). Capacitor 5 menangani ini secara otomatis, tetapi periksa kembali manifest khusus.
import { PhotoLibrary } from '@capgo/capacitor-photo-library';
const { state } = await PhotoLibrary.requestAuthorization();
if (state !== 'authorized' && state !== 'limited') {
throw new Error('Photo access denied');
}
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,
}));

Untuk mengambil halaman tambahan, panggil PhotoLibrary.getLibrary({ cursor: nextPage }).

const selection = await PhotoLibrary.pickMedia({
selectionLimit: 5,
includeVideos: true,
});
console.log('User selected', selection.assets.length, 'items');

Thumbnail dan ekspor yang dihasilkan disimpan dalam direktori cache aplikasi di bawah photoLibrary. Hapus mereka dengan API file pilihan Anda ketika Anda perlu mengklaim kembali penyimpanan.