Visionneuse de photos
Présentez PhotoViewerPage depuis un bouton ou une méthode de page existante via une fenêtre modale Ionic. Faites-le après l’installation. Installez swiper pour utiliser la visionneuse.
import { Component, inject } from '@angular/core';
import { ModalController, IonButton } from '@ionic/angular';
import { PhotoViewerProps, PhotoViewerResult } from '@rdlabo/ionic-angular-photo-editor';
import { PhotoViewerPage } from '@rdlabo/ionic-angular-photo-editor/viewer';
@Component({
selector: 'app-view-photos',
imports: [IonButton],
template: `<ion-button type="button" (click)="openViewer()">View photos</ion-button>`,
})
export class ViewPhotosPage {
private readonly modalCtrl = inject(ModalController);
async openViewer(): Promise<void> {
const componentProps = {
imageUrls: ['https://picsum.photos/200/300', 'https://picsum.photos/200/301'],
index: 0,
isCircle: false,
enableDelete: true,
toolbarColorScheme: 'dark',
imageAlt: (url, index) => `Photo ${index + 1}`,
labels: {
delete: 'Delete',
},
} satisfies PhotoViewerProps;
const modal = await this.modalCtrl.create({
component: PhotoViewerPage,
componentProps,
});
await modal.present();
const { data } = await modal.onWillDismiss<PhotoViewerResult>();
if (data?.action === 'delete') {
console.log(data.index, data.value);
}
}
}
Résultat de la fenêtre modale
Lorsque l’utilisateur appuie sur Supprimer, la fenêtre modale se ferme avec :
interface PhotoViewerResult {
action: 'delete';
index: number;
value: string; // URL de l’image à cet index
}
La fermeture ou un balayage vers le bas ne renvoie aucune donnée.
Options
imageUrls: string[]
Obligatoire. URL des images ou URL de données à afficher.
index: number
Index de la diapositive initiale. Valeur par défaut : 0.
isCircle: boolean
Si la valeur est true, les images s’affichent dans un cercle.
enableDelete: boolean
Si la valeur est true, affiche le bouton de suppression.
enableFooterSafeArea: boolean
Si la valeur est true, ajoute une marge interne de zone de sécurité au pied de page sur iOS.
toolbarColorScheme: 'light' | 'dark'
Obligatoire. Utilisez dark pour un ion-toolbar sombre/noir et light pour une barre claire/blanche. Consultez Thème.
imageAlt: string | ((url: string, index: number) => string)
Texte alt accessible pour chaque image de diapositive. La valeur par défaut est une chaîne vide. Fournissez une fonction si le texte alternatif dépend de l’URL ou de l’index.
labels: Partial<PhotoViewerLabels>
Remplace les textes de l’interface par défaut. Les clés non renseignées conservent les valeurs japonaises intégrées :
| Clé | Valeur par défaut (ja) |
|---|---|
| close | 閉じる |
| delete | 削除 |
Le bouton de fermeture utilise également le aria-label du libellé close.