0

私は Samsung Gear S を持っており、Web アプリの作成に忙しくしています。サーバーからメッセージを受け取ったときにアプリを振動させたいと思います。私は単に使用navigator.vibrate(1000)していますが、これはうまく機能します。しかし、アプリがバックグラウンドになると、バイブレーションが機能しなくなります。同じ問題に直面しているこのスレッド ( https://developer.tizen.org/ko/forums/web-application-development/vibration-background?langswitch=ko ) を見つけましたが、解決策はありません。アラームを使用してアプリをアクティブにすることも提案されましたが、その方法がわかりません。次のようなものだと思います。

var alarm = new tizen.AlarmRelative(1);
var service = navigator.vibrate(1000);
tizen.alarm.add(alarm, "org.tizen.browser", service);

サービスが正しくないため、これは失敗します。どうすればこれを機能させることができますか?

4

5 に答える 5

1

最初の方法:

最初に画面ライトをオンにしてから振動させることができます。

tizen.power.turnScreenOn();
navigator.vibrate(1000);

トリッキーですが、機能します。

2 番目の方法:

  1. サーバーからデータを受信するサービスアプリを作成する

  2. 目的の機能のために起動する必要がある UI アプリを作成します。

  3. サービス アプリを指す UI アプリで参照する

  4. Service がサーバーからデータを受信すると、振動して UI アプリを起動します。

サービスアプリでは、

var alarm = new tizen.AlarmRelative(10);
var service = new tizen.ApplicationService("http://tizen.org/appsvc/operation/view","http://www.tizen.org");
tizen.alarm.add(alarm, "org.your.app.id", service);
console.log("Alarm added with id: " + alarm.id);
  1. サービス アプリから UI アプリにデータを送信する必要がある場合は、メッセージ ポートを使用します。
于 2016-05-13T16:41:42.277 に答える
1

次の方法:

最初に画面ライトをオンにしてから振動させることができます。

tizen.power.turnScreenOn();
navigator.vibrate(1000);

まだうまくいきません。バイブレーションの遅延を追加する必要がありました。

tizen.power.turnScreenOn();
setTimeout(function (){
    navigator.vibrate(1000);
}, 500);
于 2016-05-15T15:32:25.693 に答える
0

アラームを使用できます。

var appId = tizen.application.getCurrentApplication().appInfo.id; 
var alarm = new tizen.AlarmRelative(delay);
console.log('Setting relative alarm to ' + delay + ' seconds.');
tizen.alarm.add(alarm, appId);

アプリがサーバーから情報を受け取るときに、このコード フラグメントを追加します。

于 2016-05-15T13:55:49.477 に答える