我有一个带有哔声通知的cordova应用程序:
navigator.notification.beep(100);
效果很好,但我希望用户能够阻止设备发出哔哔声。
如何删除通知或阻止设备发出哔哔声?
答案 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 ,从而停止间隔。