Erste Schritte
-
Paket installieren
Terminal-Fenster npm i @capgo/capacitor-flashTerminal-Fenster pnpm add @capgo/capacitor-flashTerminal-Fenster yarn add @capgo/capacitor-flashTerminal-Fenster bun add @capgo/capacitor-flash -
Mit nativen Projekten synchronisieren
Terminal-Fenster npx cap syncTerminal-Fenster pnpm cap syncTerminal-Fenster yarn cap syncTerminal-Fenster bunx cap sync
Verwendung
Section titled “Verwendung”Importieren Sie das Plugin und verwenden Sie seine Methoden zur Steuerung der Taschenlampe:
import { CapacitorFlash } from '@capgo/capacitor-flash';
// Verfügbarkeit der Taschenlampe prüfenconst checkFlashlight = async () => { const { value } = await CapacitorFlash.isAvailable(); console.log('Taschenlampe verfügbar:', value);};
// Taschenlampe einschaltenconst turnOn = async () => { await CapacitorFlash.switchOn();};
// Taschenlampe ausschaltenconst turnOff = async () => { await CapacitorFlash.switchOff();};
// Prüfen, ob Taschenlampe eingeschaltet istconst checkStatus = async () => { const { value } = await CapacitorFlash.isSwitchedOn(); console.log('Taschenlampe ist an:', value);};
// Taschenlampe umschaltenconst toggle = async () => { await CapacitorFlash.toggle();};API-Referenz
Section titled “API-Referenz”isAvailable()
Section titled “isAvailable()”Prüft, ob eine Taschenlampe auf dem Gerät verfügbar ist.
const result = await CapacitorFlash.isAvailable();// Gibt zurück: { value: boolean }switchOn(options?)
Section titled “switchOn(options?)”Schaltet die Taschenlampe ein.
interface SwitchOnOptions { intensity?: number; // 0.0 bis 1.0 (nur iOS)}
await CapacitorFlash.switchOn({ intensity: 0.5 });switchOff()
Section titled “switchOff()”Schaltet die Taschenlampe aus.
await CapacitorFlash.switchOff();isSwitchedOn()
Section titled “isSwitchedOn()”Prüft, ob die Taschenlampe derzeit eingeschaltet ist.
const result = await CapacitorFlash.isSwitchedOn();// Gibt zurück: { value: boolean }toggle()
Section titled “toggle()”Schaltet die Taschenlampe ein/aus.
await CapacitorFlash.toggle();Vollständiges Beispiel
Section titled “Vollständiges Beispiel”import { CapacitorFlash } from '@capgo/capacitor-flash';
export class FlashlightService { private isOn = false;
async init() { const { value } = await CapacitorFlash.isAvailable(); if (!value) { throw new Error('Taschenlampe auf diesem Gerät nicht verfügbar'); } }
async toggle() { if (this.isOn) { await CapacitorFlash.switchOff(); } else { await CapacitorFlash.switchOn(); } this.isOn = !this.isOn; }
async turnOn(intensity?: number) { await CapacitorFlash.switchOn({ intensity }); this.isOn = true; }
async turnOff() { await CapacitorFlash.switchOff(); this.isOn = false; }
async strobe(intervalMs: number = 100, duration: number = 3000) { const endTime = Date.now() + duration;
while (Date.now() < endTime) { await CapacitorFlash.toggle(); await new Promise(resolve => setTimeout(resolve, intervalMs)); }
// Sicherstellen, dass die Taschenlampe nach dem Stroboskop ausgeschaltet ist await CapacitorFlash.switchOff(); this.isOn = false; }}Best Practices
Section titled “Best Practices”-
Verfügbarkeit zuerst prüfen Überprüfen Sie immer die Verfügbarkeit der Taschenlampe, bevor Sie sie verwenden:
const { value } = await CapacitorFlash.isAvailable();if (!value) {// Alternative UI anzeigen oder Taschenlampenfunktionen deaktivieren} -
Fehler elegant behandeln
try {await CapacitorFlash.switchOn();} catch (error) {console.error('Taschenlampe konnte nicht eingeschaltet werden:', error);} -
Ausschalten, wenn nicht benötigt Schalten Sie die Taschenlampe immer aus, wenn Ihre App in den Hintergrund geht oder wenn die Funktion nicht mehr benötigt wird, um Batterie zu sparen.
-
Schnelles Umschalten vermeiden Implementieren Sie Debouncing, um schnelles Ein-/Ausschalten zu verhindern, das die LED beschädigen oder die Batterie entleeren könnte.
Plattformhinweise
Section titled “Plattformhinweise”- Erfordert iOS 10.0+
- Verwendet
AVCaptureDeviceTaschenlampen-Modus - Unterstützt Intensitätssteuerung (0.0 bis 1.0)
Android
Section titled “Android”- Erfordert Android 6.0 (API 23)+
- Verwendet Camera2 API
- Intensitätssteuerung nicht unterstützt (verwendet Standardhelligkeit)
- Unterstützt auf Browsern mit MediaDevices API und Taschenlampenfähigkeit
- Verwendet den Kamera-Stream, um auf die Taschenlampe des Geräts zuzugreifen
- Erfordert Benutzerberechtigung für Kamerazugriff
- Funktioniert am besten auf mobilen Browsern (Chrome auf Android)
- Desktop-Browser geben normalerweise
isAvailable: falsezurück (keine Taschenlampenhardware) - Intensitätssteuerung nicht auf Web unterstützt