Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 1x 12x 12x 6x 6x 6x 5x 4x 4x 4x 3x 3x 4x 4x 2x | import { Injectable } from '@angular/core';
/**
* Service pour générer des QR codes
* Utilise une API publique pour générer des QR codes
*/
@Injectable({
providedIn: 'root'
})
export class QrCodeService {
/**
* Génère l'URL d'un QR code pour un texte donné
* Utilise l'API QR Server (gratuite et sans authentification)
*/
generateQrCodeUrl(text: string, size: number = 200): string {
// Encode le texte pour l'URL
const encodedText = encodeURIComponent(text);
// Utilise l'API QR Server
return `https://api.qrserver.com/v1/create-qr-code/?size=${size}x${size}&data=${encodedText}`;
}
/**
* Génère un QR code en base64 (pour l'inclusion dans les emails)
* Note: Pour une vraie application, il faudrait utiliser une bibliothèque comme qrcode
* ou faire un appel au backend qui génère le QR code
*/
async generateQrCodeBase64(text: string): Promise<string> {
// Pour l'instant, on retourne l'URL du QR code
// Dans une vraie application, on utiliserait une bibliothèque comme 'qrcode' ou on appellerait le backend
const qrUrl = this.generateQrCodeUrl(text, 200);
// Convertir l'image en base64 (nécessite un appel CORS)
try {
const response = await fetch(qrUrl);
const blob = await response.blob();
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => {
const base64 = reader.result as string;
resolve(base64);
};
reader.onerror = reject;
reader.readAsDataURL(blob);
});
} catch (error) {
// Retourner l'URL en fallback
return qrUrl;
}
}
}
|