時間が終了すると振動するタイマーを使用して、Samsung Gear S2 (web) のアプリケーションを開発しています。アプリケーションがバックグラウンド モードであっても振動できるようにするには、どうすればよいですか?
質問する
647 次
1 に答える
1
一般に、アラーム API または通知を使用していない限り、バックグラウンド バイブレーション (画面オフ状態から) を Web アプリで直接利用することはできません。
しかし、時間指定されたバックグラウンド バイブレーションは、 Power APIとWeb ワーカーを使用して簡単にだますことができます。サンプル コードを共有しています。
main.js
window.onload = function() {
document.addEventListener('tizenhwkey', function(e) {
if (e.keyName === "back") {
try {
tizen.application.getCurrentApplication().hide();
}catch (ignore) {}
}
});
var mainPage = document.querySelector('#main');
mainPage.addEventListener("click", function() {
var contentText = document.querySelector('#content-text');
var worker; //web worker
worker = new Worker("js/worker.js"); //load from directory
worker.onmessage = function(event) { //receive data from worker
tizen.power.turnScreenOn(); // forcefully turn the screen on
setTimeout(function (){
contentText.innerHTML = event.data; // time counter
navigator.vibrate(1000);
}, 500); // just being safe (vibrate after screen is on)
};
});
};
worker.js
var i=0;
function timedCount() {
i=i+1;
postMessage(i); //send data
setTimeout("timedCount()",5000); // set vibration interval (or use specific time)
}
timedCount();
これらの行を config.xml に追加します
<tizen:privilege name="http://tizen.org/privilege/power"/>
<tizen:setting background-support="enable" encryption="disable" hwkey-event="enable"/>
バックグラウンド サポートが有効になると、Web ワーカーを適用しているときに、アプリは最小化されているときに応答します。バックキーイベントで getCurrentApplication().exit() の代わりに getCurrentApplication ().hide()を使用すると、タスクが実行されます。
さまざまな種類の振動については、振動ガイドを確認してください。
于 2016-11-10T16:26:58.927 に答える