Erste Schritte
-
Installieren Sie das Paket
Terminal-Fenster npm i @capgo/capacitor-shakeTerminal-Fenster pnpm add @capgo/capacitor-shakeTerminal-Fenster yarn add @capgo/capacitor-shakeTerminal-Fenster bun add @capgo/capacitor-shake -
Mit nativen Projekten synchronisieren
Terminal-Fenster npx cap syncTerminal-Fenster pnpm cap syncTerminal-Fenster yarn cap syncTerminal-Fenster bunx cap sync -
Konfigurieren Sie das Plugin
Grundlegendes Verwendungsbeispiel:
import { Shake } from '@capgo/capacitor-shake';// Beginnen Sie mit dem Lauschen auf Schüttelgestenawait Shake.start();// Lauschen Sie auf SchüttelereignisseShake.addListener('shake', () => {console.log('Gerät wurde geschüttelt!');// Führen Sie hier Ihre Aktion aus});Empfindlichkeitskonfiguration:
// Schüttelempfindlichkeit konfigurierenawait Shake.start({threshold: 3.5 // Empfindlichkeit anpassen (Standard: 3.5)});Für iOS ist keine zusätzliche Einrichtung erforderlich.
Für Android ist keine zusätzliche Einrichtung erforderlich.
-
Beenden Sie das Lauschen auf Schüttelgesten
// Schüttelerkennung stoppen, wenn nicht benötigtawait Shake.stop();// Bestimmten Listener entfernenconst handle = await Shake.addListener('shake', () => {console.log('Geschüttelt!');});handle.remove(); -
Beispielimplementierung
import { Shake } from '@capgo/capacitor-shake';import { App } from '@capacitor/app';export class ShakeService {private shakeListener: any;async initialize() {// Schüttelerkennung startenawait Shake.start({ threshold: 4.0 });// Schüttel-Listener hinzufügenthis.shakeListener = await Shake.addListener('shake', () => {this.handleShake();});// Beim Pausieren der App aufräumenApp.addListener('pause', () => {Shake.stop();});// Beim Fortsetzen der App fortsetzenApp.addListener('resume', () => {Shake.start({ threshold: 4.0 });});}private handleShake() {console.log('Schütteln erkannt!');// Debug-Menü anzeigen, Daten aktualisieren oder eine beliebige Aktion auslösen}async cleanup() {if (this.shakeListener) {this.shakeListener.remove();}await Shake.stop();}}
API-Referenz
Section titled “API-Referenz”Methoden
Section titled “Methoden”start(options?: ShakeOptions)
Section titled “start(options?: ShakeOptions)”Beginnen Sie mit dem Lauschen auf Schüttelgesten.
Parameter:
options(optional): Konfigurationsobjektthreshold: number - Empfindlichkeitsschwelle (Standard: 3.5)
stop()
Section titled “stop()”Beenden Sie das Lauschen auf Schüttelgesten.
addListener('shake', callback: () => void)
Section titled “addListener('shake', callback: () => void)”Fügen Sie einen Listener für Schüttelereignisse hinzu.
Rückgabe: Promise mit einem Handle zum Entfernen des Listeners
Schnittstellen
Section titled “Schnittstellen”interface ShakeOptions { threshold?: number; // Schüttelempfindlichkeitsschwelle}Plattformhinweise
Section titled “Plattformhinweise”- Verwendet den Beschleunigungsmesser des Geräts zur Erkennung von Schüttelgesten
- Funktioniert sowohl im Vordergrund als auch im Hintergrund (wenn die App Hintergrundberechtigungen hat)
Android
Section titled “Android”- Verwendet den SensorManager zur Erkennung von Schüttelereignissen
- Erfordert keine speziellen Berechtigungen
- Funktioniert, wenn die App im Vordergrund ist
Häufige Anwendungsfälle
Section titled “Häufige Anwendungsfälle”- Debug-Menü: Entwickleroptionen anzeigen, wenn das Gerät geschüttelt wird
- Feedback: Feedback-Formular oder Fehlerbericht auslösen
- Aktualisieren: App-Daten aktualisieren oder Cache leeren
- Spiele: Schütteln als Spielsteuerungsmechanismus verwenden
- Rückgängig machen: Schüttel-zum-Rückgängigmachen-Funktionalität implementieren
Fehlerbehebung
Section titled “Fehlerbehebung”Schütteln wird nicht erkannt:
- Stellen Sie sicher, dass das Plugin mit
Shake.start()gestartet wurde - Versuchen Sie, den Schwellenwert anzupassen (niedriger = empfindlicher)
- Überprüfen Sie, ob Listener ordnungsgemäß registriert sind
Zu empfindlich/nicht empfindlich genug:
- Passen Sie den
threshold-Parameter in denstart()-Optionen an - Werte liegen typischerweise zwischen 2.0 (sehr empfindlich) und 5.0 (weniger empfindlich)