停止navigator.notification.beep(100);

时间:2015-03-28 10:19:37

标签: cordova phonegap-plugins cordova-plugins

我有一个带有哔声通知的cordova应用程序:

navigator.notification.beep(100);

效果很好,但我希望用户能够阻止设备发出哔哔声。

如何删除通知或阻止设备发出哔哔声?

1 个答案:

答案 0 :(得分:0)

你试过这个吗?当您的应用中的用户可以使用setInterval并每5秒播放一次哔声:

var stop = false;
...
...
var inter = setInterval(function(){

   if(!stop)navigator.notification.beep(1);
   else clearInterval(inter);

},5000);
...
function stopBeepNoise(){ stop = true; }

间隔的延迟应对应于蜂鸣声的长度。对于 android ,哔哔声的长度大约需要5秒,因为 在plugin的源代码中我可以看到的是,5秒(长超时)必须通过,以便在程序循环时超时结束 / 达到噪音的长度,以便 isPlaying 返回 false ,这样您就不能完全确定5秒后哔哔声结束可能不到5秒:

for (long i = 0; i < count; ++i) {
      notification.play();
      long timeout = 5000;
      while (notification.isPlaying() && (timeout > 0)) {
           timeout = timeout - 100;
           try {
               Thread.sleep(100);
           } catch (InterruptedException e) {
           }
      }
}  

当然对于ios它看起来不同但在这里我建议在ios / winphone / -vice上测试实际情况下的调整延迟。

可以通过触摸按钮来调用

stopBeepNoise ,从而停止间隔。