在PWA推送通知上添加服务器参数

时间:2018-04-12 07:03:34

标签: javascript push-notification service-worker progressive-web-apps

是否可以在showNotification方法上从服务器参数添加自定义标题,正文等?

var title = 'My title';

  event.waitUntil(
    self.registration.showNotification(title, {
      body: 'My body',
      icon: 'images/icon.png',
      tag: 'my-tag'
    }));

我使用经典的Firebase来存储我的用户令牌。例如,在新文章中,发送文章标题。

1 个答案:

答案 0 :(得分:0)

是。您可以使用来自服务器的数据显示自定义推送通知,这也适用于您的用例。即使您的应用未被用户主动使用,也可以显示这些通知。就像您从亚马逊应用程序接收交易通知一样,您可以通过使用下面的推送事件监听器从服务器获取数据来显示您的新文章标题和正文,并使用该数据来表达并在通知的不同部分使用它。

self.addEventListener('push', function(e) {
  var body;

  if (e.data) {
    body = e.data.text();
  } else {
    body = 'Push message no payload';
  }

  var options = {
    body: body,
    icon: 'images/notification-flat.png',
    vibrate: [100, 50, 100],
    data: {
      dateOfArrival: Date.now(),
      primaryKey: 1
    },
    actions: [
      {action: 'explore', title: 'Explore this new world',
        icon: 'images/checkmark.png'},
      {action: 'close', title: 'I don't want any of this',
        icon: 'images/xmark.png'},
    ]
  };
  e.waitUntil(
    self.registration.showNotification('Push Notification', options)
  );
});

有关详细说明,请查看this article在服务工作者中接收数据部分。