微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firebase 消息服务工作线程发送通知

如何解决Firebase 消息服务工作线程发送通知

在 Firebase Messaging 文档中,有一个关于如何通过 javscript 文件注册的 serviceworker 向浏览器发送通知的示例:

messaging.onBackgroundMessage((payload) => {
  console.log('[firebase-messaging-sw.js] Received background message ',payload);
  // Customize notification here
  const notificationTitle = 'Background Message Title';
  const notificationoptions = {
    body: 'Background Message body.',icon: '/firebase-logo.png'
  };

  self.registration.showNotification(notificationTitle,notificationoptions);
});

但遗憾的是,没有示例如何为前景做同样的事情:

const messaging = firebase.messaging();

this.afMessaging.messages
        .subscribe((message) => { 
            const title = 'TEST';
            const options = {
              body: message["data"].text,icon: 'assets/icon.png',badge: 'assets/badge.png',actions: [
                { 
                  action: 'archive',title: 'archive'
                }
              ]
            };
            
            //let notification = new Notification(title,options);
            navigator.serviceWorker.getRegistration().then(reg => reg.showNotification(title,options));

我在 new Notification 之前使用过,但这不支持操作。 所以我需要使用 serviceworker 的 showNotification,但是如何从 typescript 代码访问它。
使用当前的实现,我总是收到错误消息:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'showNotification' of undefined
TypeError: Cannot read property 'showNotification' of undefined

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。