2

時間が終了すると振動するタイマーを使用して、Samsung Gear S2 (web) のアプリケーションを開発しています。アプリケーションがバックグラウンド モードであっても振動できるようにするには、どうすればよいですか?

4

1 に答える 1

1

一般に、アラーム API または通知を使用していない限り、バックグラウンド バイブレーション (画面オフ状態から) を Web アプリで直接利用することはできません。

しかし、時間指定されたバックグラウンド バイブレーションは、 Power APIWeb ワーカーを使用して簡単にだますことができます。サンプル コードを共有しています。

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 に答える