Memulai
-
Instal 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 -
Sinkronkan platform
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
Izin platform
Section titled “Izin platform”- iOS: Perbarui
Info.plistdenganNSPhotoLibraryUsageDescription(danNSPhotoLibraryAddUsageDescriptionjika 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.
Minta akses
Section titled “Minta akses”import { PhotoLibrary } from '@capgo/capacitor-photo-library';
const { state } = await PhotoLibrary.requestAuthorization();if (state !== 'authorized' && state !== 'limited') { throw new Error('Photo access denied');}Muat galeri
Section titled “Muat galeri”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 }).
Biarkan pengguna memilih media
Section titled “Biarkan pengguna memilih media”const selection = await PhotoLibrary.pickMedia({ selectionLimit: 5, includeVideos: true,});
console.log('User selected', selection.assets.length, 'items');Bersihkan file yang di-cache
Section titled “Bersihkan file yang di-cache”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.