Play a sound with Firebase when browser receives a

2019-06-25 06:01发布

I would like to know how to play a sound with Firebase Cloud Messaging (FCM) when the web browser such as Chrome, Firefox, etc. receives a notification message while running in the background.

notification while running in the background enter image description here To receive a message while the app is in the background, in FCM, call setBackgroundMessageHandler in the service worker firebase-messaging-sw.js

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

However, Audio Object window.AudioContext can not be called in service worker. In addition, The notification property Notification.sound is not currently supported in any browser.

I would like to know how to play a sound with FCM when the app is in the background.

2条回答
唯我独甜
2楼-- · 2019-06-25 06:35

You should be able to add a function inside the event listener for push in the service-worker and just have it play a sound.

查看更多
Deceive 欺骗
3楼-- · 2019-06-25 06:37

While sounds are not currently supported, you should be able to vibrate a user's device when showing a notification from inside of a service worker. That might be sufficient to get their attention. (If you really need to...)

Here's an excerpt from a 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'
});
查看更多
登录 后发表回答