All Products
Search
Document Center

SuperApp:Deteksi gerakan

Last Updated:Apr 23, 2026

Topik ini menjelaskan API JavaScript untuk kelas WVMotion, yang dapat Anda gunakan saat membuat aplikasi HTML5 atau miniapp. API ini memungkinkan Anda memantau gerakan perangkat, seperti mendeteksi gesture tiup dan memicu getaran perangkat.

WVMotion.listenBlow

Memulai pendengaran terhadap gesture tiup.

Parameter input

  • [number] time: Opsional. Interval waktu dalam detik ketika event tiup dipicu selama gesture tiup berkelanjutan. Pada iOS, nilainya berada dalam rentang [0, 1] dan default-nya adalah 0, yang berarti sistem menentukan interval tersebut. Nilai ini meningkat seiring berlangsungnya gesture tiup.

Parameter callback

Metode ini tidak memiliki parameter callback. Callback success dieksekusi jika pendengar berhasil dimulai. Jika tidak, callback failure dieksekusi.

Event Listening

motion.blow: Dipicu ketika pengguna melakukan gesture tiup selagi pendengar aktif.

Parameter event:

  • [number] pass: Nilai deteksi gesture tiup. Nilai ini bervariasi antar perangkat. Pada iOS, ini adalah nilai dalam rentang [0, 1] yang meningkat seiring berlangsungnya gesture tiup. Pada Android, nilai ini selalu 1.

document.addEventListener('motion.blow', function(e) {
        alert('A blow gesture is detected.');
}, false);

window.WindVane.call('WVMotion', 'listenBlow', {}, function(e) {
        alert('success');
}, function(e) {
        alert('failure:' + JSON.stringify(e));
});

WVMotion.stopListenBlow

Menghentikan pendengaran terhadap gesture tiup.

Parameter input

Tidak ada parameter input.

Parameter callback

Tidak ada parameter callback. Callback success selalu dieksekusi.

window.WindVane.call('WVMotion', 'stopListenBlow', {}, function(e) {
        alert('success');
});

WVMotion.listenGyro

Memulai atau menghentikan pendengaran terhadap data giroskop.

Pendengaran giroskop memungkinkan halaman HTML5 mendeteksi perubahan orientasi perangkat dan meresponsnya. Perangkat memiliki dua sensor yang dapat mendeteksi orientasinya: giroskop dan sensor gravitasi. Giroskop menyediakan orientasi perangkat dalam bentuk sudut Euler (roll, pitch, dan yaw), sedangkan sensor gravitasi mengukur komponen gaya gravitasi sepanjang tiga sumbu perangkat.

Karena adanya ketidakkonsistenan format data antara iOS dan Android, API ini mengembalikan data dari sensor gravitasi untuk memastikan kompatibilitas lintas platform. Halaman HTML5 kemudian menggunakan algoritma untuk menghitung orientasi perangkat berdasarkan data tersebut.

Parameter input

  • [boolean] on: Memulai (true) atau menghentikan (false) pendengaran terhadap data giroskop.

  • [number] frequency: Interval waktu minimum dalam milidetik antara event giroskop. Sistem memastikan bahwa interval aktual antara dua event berturut-turut melebihi nilai ini.

Parameter callback

Tidak ada parameter callback. Callback success dieksekusi jika pendengar berhasil dimulai atau dihentikan. Jika tidak, callback failure dieksekusi.

Event Listening

motion.gyro: Dipicu ketika orientasi perangkat berubah selagi pendengar giroskop aktif.

Parameter event:

  • [number] x: Komponen gaya gravitasi sepanjang sumbu-x. Nilainya berada dalam rentang [-1, 1].

  • [number] y: Komponen gaya gravitasi sepanjang sumbu-y. Nilainya berada dalam rentang [-1, 1].

  • [number] z: Komponen gaya gravitasi sepanjang sumbu-z. Nilainya berada dalam rentang [-1, 1].

document.addEventListener('motion.gyro', function(e) {
        alert('Device orientation changed.');
}, false);

var params = {
        // Specifies whether to start or stop the gyroscope listener.
        on: true,
        // The time interval for gyroscope events.
        frequency: 100
};
window.WindVane.call('WVMotion', 'listenGyro', params, function(e) {
        alert('success');
}, function(e) {
        alert('failure:' + JSON.stringify(e));
});

WVMotion.listeningShake

Memulai atau menghentikan pendengaran terhadap gesture goyang.

Parameter input

  • [boolean] on: Memulai (true) atau menghentikan (false) pendengaran terhadap gesture goyang.

  • [number] frequency: Opsional. Interval waktu minimum dalam milidetik antara event goyang. Waktu antara dua event berturut-turut selalu melebihi nilai ini. Nilai default-nya adalah 500.

  • [number] shakeThreshold: Opsional. Ambang batas guncangan. Akselerasi yang melebihi ambang batas ini dianggap sebagai guncangan yang valid. Nilai default-nya adalah 1.2.

  • [number] shakeNum: Opsional. Jumlah goyangan yang diperlukan untuk memicu event goyang. Nilai default-nya adalah 1.

Parameter callback

Tidak ada parameter callback. Callback success dieksekusi jika pendengar berhasil dimulai atau dihentikan. Jika tidak, callback failure dieksekusi.

Pendengaran event

motion.shake: Dipicu ketika pengguna menggoyangkan perangkat selagi pendengar aktif.

Parameter event:

  • [number] x: Percepatan sepanjang sumbu-x.

  • [number] y: Percepatan sepanjang sumbu-y.

  • [number] z: Percepatan sepanjang sumbu-z.

document.addEventListener('motion.shake', function(e) {
        alert('A shake gesture is detected.');
}, false);

var params = {
        // Specifies whether to start or stop listening for shake gestures.
        on: true
};
window.WindVane.call('WVMotion', 'listeningShake', params, function(e) {
        alert('success');
}, function(e) {
        alert('failure: ' + JSON.stringify(e));
})

WVMotion.vibrate

Menggetarkan perangkat.

Parameter input

  • [int] duration: Opsional. Durasi getaran dalam milidetik. Durasi default ditentukan oleh sistem. Parameter ini hanya tersedia pada WindVane untuk Android dan mungkin tidak berfungsi pada semua model perangkat.

Parameter callback

Tidak ada parameter callback. Callback success selalu dieksekusi.

window.WindVane.call('WVMotion', 'vibrate', {});

var params = {
        // The duration of the vibration.
        duration: 7000
};
window.WindVane.call('WVMotion', 'vibrate', params);

WVMotion.startAccelerometer

Catatan

API ini hanya tersedia di WindVane untuk Android 1.0.3.4 atau versi yang lebih baru.

Memulai pendengaran terhadap data percepatan.

Parameter input

  • [string] interval: Opsional. Frekuensi callback data percepatan. Nilai default-nya adalah 'normal'. Nilai yang valid:

    • ui: Cocok untuk pembaruan UI. Callback terjadi kira-kira setiap 60 ms.

    • game: Cocok untuk pembaruan game. Callback terjadi kira-kira setiap 20 ms.

    • normal: Frekuensi callback standar, kira-kira sekali setiap 200 ms.

Parameter callback

Parameter untuk callback success:

  • Tidak ada parameter callback.

Parameter untuk callback failure:

  • [string] msg: Pesan yang menjelaskan kegagalan.

Event Listening

WVMotion.Event.accelerometer

Dipicu ketika data percepatan baru diterima.

Parameter event:

  • [float] x: Percepatan sepanjang sumbu-x.

  • [float] y: Percepatan sepanjang sumbu-y.

  • [float] z: Percepatan sepanjang sumbu-z.

document.addEventListener('WVMotion.Event.accelerometer', function (e) {
        alert('event accelerometer: ' + JSON.stringify(e.param));
});

var params = {
  interval: 'normal'
};

window.WindVane.call('WVMotion', 'startAccelerometer', params, function(e) {
}, function(e) {
        alert('startAccelerometer failure: ' + JSON.stringify(e));
});

WVMotion.stopAccelerometer

Catatan

API ini hanya tersedia di WindVane untuk Android 1.0.3.4 atau versi yang lebih baru.

Menghentikan pendengaran terhadap data percepatan.

Parameter input

  • Tidak ada parameter input.

Parameter callback

Tidak ada parameter callback. Callback success selalu dieksekusi.

window.WindVane.call('WVMotion', 'stopAccelerometer', {});

WVMotion.startCompass

Catatan

API ini hanya tersedia di WindVane untuk Android 1.0.3.4 atau versi yang lebih baru.

Memulai pendengaran terhadap data kompas.

Parameter input

  • [string] interval: Opsional. Frekuensi callback data kompas. Nilai default-nya adalah 'normal'. Nilai yang valid:

    • ui: Cocok untuk pembaruan UI. Callback terjadi kira-kira setiap 60 ms.

    • game: Cocok untuk pembaruan game. Callback terjadi kira-kira setiap 20 ms.

    • normal: Frekuensi callback standar, kira-kira sekali setiap 200 ms.

Parameter callback

Parameter untuk callback success:

  • Tidak ada parameter callback.

Parameter untuk callback failure:

  • [string] msg: Pesan yang menjelaskan kegagalan.

Pendengaran event

WVMotion.Event.compass

Dipicu ketika data kompas baru diterima.

Parameter event:

  • [float] direction: Sudut dalam derajat antara arah yang dihadap perangkat dan utara geografis. Nilainya berada dalam rentang [0, 360).

  • [long] timestamp: Timestamp saat data diambil.

document.addEventListener('WVMotion.Event.compass', function (e) {
        alert('event compass: ' + JSON.stringify(e.param));
});

var params = {
  interval: 'normal'
};

window.WindVane.call('WVMotion', 'startCompass', params, function(e) {
}, function(e) {
        alert('startCompass failure: ' + JSON.stringify(e));
});

WVMotion.stopCompass

Catatan

API ini hanya tersedia di WindVane untuk Android 1.0.3.4 atau versi yang lebih baru.

Menghentikan pendengaran terhadap data kompas.

Parameter input

  • Tidak ada parameter input.

Parameter callback

Tidak ada parameter callback. Callback success selalu dieksekusi.

window.WindVane.call('WVMotion', 'stopCompass', {});