Memulai
-
Instal paket
Terminal window npm i @capgo/capacitor-shakeTerminal window pnpm add @capgo/capacitor-shakeTerminal window yarn add @capgo/capacitor-shakeTerminal window bun add @capgo/capacitor-shake -
Sinkronkan dengan proyek native
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync -
Konfigurasi plugin
Contoh Penggunaan Dasar:
import { Shake } from '@capgo/capacitor-shake';// Mulai mendengarkan gerakan shakeawait Shake.start();// Dengarkan event shakeShake.addListener('shake', () => {console.log('Perangkat digoyangkan!');// Lakukan aksi Anda di sini});Konfigurasi Sensitivitas:
// Konfigurasi sensitivitas shakeawait Shake.start({threshold: 3.5 // Sesuaikan sensitivitas (default: 3.5)});Tidak diperlukan pengaturan tambahan untuk iOS.
Tidak diperlukan pengaturan tambahan untuk Android.
-
Hentikan mendengarkan shake
// Hentikan deteksi shake ketika tidak diperlukanawait Shake.stop();// Hapus listener spesifikconst handle = await Shake.addListener('shake', () => {console.log('Digoyangkan!');});handle.remove(); -
Contoh implementasi
import { Shake } from '@capgo/capacitor-shake';import { App } from '@capacitor/app';export class ShakeService {private shakeListener: any;async initialize() {// Mulai deteksi shakeawait Shake.start({ threshold: 4.0 });// Tambahkan shake listenerthis.shakeListener = await Shake.addListener('shake', () => {this.handleShake();});// Bersihkan saat aplikasi dijedaApp.addListener('pause', () => {Shake.stop();});// Lanjutkan saat aplikasi dilanjutkanApp.addListener('resume', () => {Shake.start({ threshold: 4.0 });});}private handleShake() {console.log('Shake terdeteksi!');// Tampilkan menu debug, refresh data, atau picu aksi apapun}async cleanup() {if (this.shakeListener) {this.shakeListener.remove();}await Shake.stop();}}
Referensi API
Section titled “Referensi API”Methods
Section titled “Methods”start(options?: ShakeOptions)
Section titled “start(options?: ShakeOptions)”Mulai mendengarkan gerakan shake.
Parameter:
options(opsional): Objek konfigurasithreshold: number - Ambang sensitivitas (default: 3.5)
stop()
Section titled “stop()”Hentikan mendengarkan gerakan shake.
addListener('shake', callback: () => void)
Section titled “addListener('shake', callback: () => void)”Tambahkan listener untuk event shake.
Mengembalikan: Promise dengan handle untuk menghapus listener
Interfaces
Section titled “Interfaces”interface ShakeOptions { threshold?: number; // Ambang sensitivitas shake}Catatan Platform
Section titled “Catatan Platform”- Menggunakan accelerometer perangkat untuk mendeteksi gerakan shake
- Bekerja di foreground dan background (jika aplikasi memiliki izin background)
Android
Section titled “Android”- Menggunakan SensorManager untuk mendeteksi event shake
- Tidak memerlukan izin khusus
- Bekerja ketika aplikasi di foreground
Kasus Penggunaan Umum
Section titled “Kasus Penggunaan Umum”- Menu Debug: Tampilkan opsi developer ketika perangkat digoyangkan
- Feedback: Picu formulir feedback atau laporan bug
- Refresh: Refresh data aplikasi atau bersihkan cache
- Games: Gunakan shake sebagai mekanisme kontrol game
- Undo: Implementasikan fungsionalitas shake-to-undo
Pemecahan Masalah
Section titled “Pemecahan Masalah”Shake tidak terdeteksi:
- Pastikan plugin dimulai dengan
Shake.start() - Coba sesuaikan nilai threshold (lebih rendah = lebih sensitif)
- Periksa bahwa listener terdaftar dengan benar
Terlalu sensitif/tidak cukup sensitif:
- Sesuaikan parameter
thresholddi opsistart() - Nilai biasanya berkisar dari 2.0 (sangat sensitif) hingga 5.0 (kurang sensitif)