如何在 service worker 中播放声音甚至在 chrome 中振动?

Gio*_*dze 10 android google-chrome push-notification service-worker

我正在使用service workers. 我需要它来push通知。我想要实现的是,当我收到通知时,它至少应该播放声音或振动。

self.registration.showNotification(title, {
   body: body,
   icon: './assets/images/icons/icon_144x144.png',
   vibrate: [200, 100, 200, 100, 200, 100, 200],
});
Run Code Online (Sandbox Code Playgroud)

收到通知后,我收到了这段代码。

问题1:完全没有振动发生。然后我进行了一些调试。

https://googlechrome.github.io/samples/notifications/vibrate.html不会使我的手机振动。

https://googlechrome.github.io/samples/vibration/index.html会使我的手机振动。

为什么它不从第一个链接振动?我正在测试所有这些android chrome

问题 2:看起来像在 Firefox 上,它确实有默认声音。为什么谷歌没有相同的声音?它只是沉默。没办法播放声音?至少我想振动它...

lfa*_*lin 3

如此处所示,无论 Chrome 版本如何,从 Android O 开始的 Android 设备都不再支持vibrate属性showNotification(),这可能就是第一个链接对您不起作用的原因。

但是,您可以使用该vibrate()方法(这就是第二个链接所做的),该方法在 32 版之后的 Chrome 版本上受支持。但请注意,在 Chrome 60 之后,该方法仅在响应用户手势时起作用。(请参阅https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate)了解更多详细信息。

在这里添加更多历史记录:

根据Chromium 开发人员的说法

不幸的是,几年前我们不得不弃用这个起始 Android O - 通知通道的引入意味着注意力抽屉(振动、声音等)现在是每个通道而不是每个通知,Chrome 不允许开发人员配置。

不幸的是,其他供应商对解决这个问题的兴趣为零。