当浏览器在后台运行时收到通知时,使用Firebase播放声音

时间:2017-10-17 07:03:44

标签: javascript notifications firebase-cloud-messaging service-worker

我想知道如何使用Firebase云消息传递(FCM)播放声音 当Chrome浏览器,Firefox等网络浏览器在后台运行时收到通知消息时。

在后台运行时的通知 enter image description here 要在应用在后台接收消息,请在FCM中呼叫服务工作者setBackgroundMessageHandler中的firebase-messaging-sw.js

 messaging.setBackgroundMessageHandler(function(payload) {
      console.log('[firebase-messaging-sw.js] Received background message ', payload);
      ...
      return self.registration.showNotification(notificationTitle, notificationOptions);
    });

但是,无法在服务工作者中调用音频对象window.AudioContext。此外,任何浏览器目前都不支持通知属性Notification.sound

我想知道当应用程序在后台时如何使用FCM播放声音。

2 个答案:

答案 0 :(得分:1)

虽然目前不支持声音,但您应该能够在显示来自服务工作者内部的通知时振动用户的设备。这可能足以引起他们的注意。 (如果你真的需要...)

以下摘自live sample

registration.showNotification('Vibration Sample', {
  body: 'Your title here.',
  icon: 'path/to/icon.png',
  vibrate: [200, 100, 200, 100, 200, 100, 200],
  tag: 'vibration-sample'
});

答案 1 :(得分:0)

您应该能够在事件监听器中添加一个函数,以便在service-worker中进行推送,并让它发出声音。