Javascript 声音在Chrome桌面推送通知的service worker中不起作用
当我收到通知时,我正试图在Chrome浏览器的推送通知中播放声音。 我已经在我的网站上设置了浏览器推送通知,但它不会播放声音。我已经通过了声音选项,但没有声音Javascript 声音在Chrome桌面推送通知的service worker中不起作用,javascript,google-chrome,audio,push-notification,service-worker,Javascript,Google Chrome,Audio,Push Notification,Service Worker,当我收到通知时,我正试图在Chrome浏览器的推送通知中播放声音。 我已经在我的网站上设置了浏览器推送通知,但它不会播放声音。我已经通过了声音选项,但没有声音 选项={ '正文':'这是tst说明', “icon”:“icon.png”, '沉默':'假', “声音”:“bell.mp3” } 如果有其他方式播放通知中的声音,请告诉我。当前浏览器不支持通知。声音 请参见您可以尝试使用chromeweb扩展 它将收听服务人员并播放音频 简单的方法是在服务工作者中请求URL,并使用chrome.w
选项={
'正文':'这是tst说明',
“icon”:“icon.png”,
'沉默':'假',
“声音”:“bell.mp3”
}
如果有其他方式播放通知中的声音,请告诉我。当前浏览器不支持通知。声音 请参见您可以尝试使用chrome
web扩展
它将收听服务人员
并播放音频
简单的方法是在服务工作者中请求URL,并使用chrome.webRequest
在后台脚本中捕获它,如
如本文所述
更新
如本文所述
服务工作者需要一个安全的来源,如HTTPS。chrome extension://页面不是HTTP/HTTPS,而是安全的,因此此更改成为允许扩展注册服务工作者的必要步骤
“chrome extension”是作为允许服务人员参与的方案添加的
在serviceworker脚本中
首先,您需要在
- 请求服务工作者中的url
- 使用chrome.webRequest.onBeforeRequest.addListener在后台脚本中捕获它
- 在
background.js中播放声音
正如@Alexander所提到的,MDN中目前不支持声音,或者您可以在弹出通知之后或之前全局声明myAudio对象并使用play()函数
myAudio = new Audio("alert_tone.mp3");
var notification = new Notification("Hi there", options);
myAudio.play();
正如你们在下面的链接中看到的
在撰写本文时,没有浏览器支持此选项
是的,浏览器不支持声音通知。如果您知道何时播放声音,您可以手动播放。感谢您的ans,但后台页面在ServiceWorker中不起作用,但为什么它有一个名为“silent”的属性?文档说“指定通知是否应静音-即,无论设备设置如何,都不应发出声音或振动。”这将在加载页面时播放音频,但在发送通知时不会播放音频。
myAudio = new Audio("alert_tone.mp3");
var notification = new Notification("Hi there", options);
myAudio.play();