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 adalah0, 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 selalu1.
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 adalah500.[
number] shakeThreshold: Opsional. Ambang batas guncangan. Akselerasi yang melebihi ambang batas ini dianggap sebagai guncangan yang valid. Nilai default-nya adalah1.2.[
number] shakeNum: Opsional. Jumlah goyangan yang diperlukan untuk memicu event goyang. Nilai default-nya adalah1.
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
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
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
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
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', {});