Comenzando
-
Instalar el paquete
Ventana de terminal npm i @Capgo/Capacitor-shakeVentana de terminal pnpm add @Capgo/Capacitor-shakeVentana de terminal yarn add @Capgo/Capacitor-shakeVentana de terminal bun add @Capgo/Capacitor-shake -
Sincronizar con proyectos nativos
Ventana de terminal npx cap syncVentana de terminal pnpm cap syncVentana de terminal yarn cap syncVentana de terminal bunx cap sync -
Configurar el Plugin
Ejemplo de Uso Básico:
import { Shake } from '@capgo/capacitor-shake';// Start listening for shake gesturesawait Shake.start();// Listen for shake eventsShake.addListener('shake', () => {console.log('Device was shaken!');// Perform your action here});Configuración de Sensibilidad:
// Configure shake sensitivityawait Shake.start({threshold: 3.5 // Adjust sensitivity (default: 3.5)});No se requiere configuración adicional para iOS.
No se requiere configuración adicional para Android.
-
Dejar de escuchar agitaciones
// Stop shake detection when not neededawait Shake.stop();// Remove specific listenerconst handle = await Shake.addListener('shake', () => {console.log('Shaken!');});handle.remove(); -
Ejemplo de implementación
import { Shake } from '@capgo/capacitor-shake';import { App } from '@capacitor/app';export class ShakeService {private shakeListener: any;async initialize() {// Start shake detectionawait Shake.start({ threshold: 4.0 });// Add shake listenerthis.shakeListener = await Shake.addListener('shake', () => {this.handleShake();});// Clean up on app pauseApp.addListener('pause', () => {Shake.stop();});// Resume on app resumeApp.addListener('resume', () => {Shake.start({ threshold: 4.0 });});}private handleShake() {console.log('Shake detected!');// Show debug menu, refresh data, or trigger any action}async cleanup() {if (this.shakeListener) {this.shakeListener.remove();}await Shake.stop();}}
Referencia del API
Section titled “Referencia del API”Métodos
Section titled “Métodos”start(options?: ShakeOptions)
Section titled “start(options?: ShakeOptions)”Comienza a escuchar gestos de agitación.
Parámetros:
options(opcional): Objeto de configuraciónthreshold: number - Umbral de sensibilidad (predeterminado: 3.5)
stop()
Section titled “stop()”Detiene la escucha de gestos de agitación.
addListener('shake', callback: () => void)
Section titled “addListener('shake', callback: () => void)”Agrega un escuchador para eventos de agitación.
Devuelve: Promise con un manejador para eliminar el escuchador
Interfaces
Section titled “Interfaces”interface ShakeOptions { threshold?: number; // Shake sensitivity threshold}Notas de Plataforma
Section titled “Notas de Plataforma”- Usa el acelerómetro del dispositivo para detectar gestos de agitación
- Funciona tanto en primer plano como en segundo plano (si la aplicación tiene permisos de segundo plano)
Android
Section titled “Android”- Usa el SensorManager para detectar eventos de agitación
- No requiere permisos especiales
- Funciona cuando la aplicación está en primer plano
Casos de Uso Comunes
Section titled “Casos de Uso Comunes”- Menú de Depuración: Mostrar opciones de desarrollador cuando se agita el dispositivo
- Retroalimentación: Activar formulario de retroalimentación o reporte de errores
- Actualizar: Actualizar datos de la aplicación o limpiar caché
- Juegos: Usar la agitación como mecanismo de control en juegos
- Deshacer: Implementar funcionalidad de deshacer con agitación
Solución de Problemas
Section titled “Solución de Problemas”Agitación no detectada:
- Asegúrate de que el Plugin esté iniciado con
Shake.start() - Intenta ajustar el valor del umbral (menor = más sensible)
- Verifica que los escuchadores estén correctamente registrados
Demasiado sensible/no lo suficientemente sensible:
- Ajusta el parámetro
thresholden las opciones destart() - Los valores típicamente varían desde 2.0 (muy sensible) hasta 5.0 (menos sensible)