停止 navigator.notification.beep(100);

Stop navigator.notification.beep(100);

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

navigator.notification.beep(100);

它运行良好,但我希望用户能够停止设备发出哔哔声。

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

你试过了吗?当用户在您的应用程序中时,您可以使用 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 秒(长超时),以便在程序循环时超时结束 and/or noise的长度达到所以isPlaying returns 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/-device.

上测试实际情况下调整后的延迟

stopBeepNoise 可以通过触摸按钮来调用,从而停止间隔。