推送通知如何与Gatsby + Netlify + Netlify lambda函数一起使用

问题描述

按照Google关于Push Notification的教程进行操作之后,我向Gatsby + Netlify支持的PWA网站添加了推送通知功能

它可以工作,但是有一个错误

第1步 它从客户端订阅获取服务人员注册

swRegistration.pushManager.subscribe({
  userVisibleOnly: true
})
.then(subscription => {
  console.log('User is subscribed:',subscription);
  isSubscribed = true;
})
.catch(err => {
  if (Notification.permission === 'denied') {
    console.warn('Permission for notifications was denied');
  } else {
    console.error('Failed to subscribe the user: ',err);
  }
});

第2步 然后从服务器端(Netlify Lambda函数),粘贴从该行代码从客户端打印出来的注册对象

.then(subscription => { console.log('用户订阅:',subscription); isSubscribed = true; })

以使其正常运行(服务器端/ lambda函数):

const webPush = require('web-push');

const pushSubscription = YOUR_SUBSCRIPTION_OBJECT;

// Todo 4.3a - include vapid keys

const payload = 'Here is a payload!';

const options = {
  TTL: 60,// Todo 4.3b - add vapid details
  vapidDetails: {
    subject: "mailto:my@gmail.com",publicKey: vapidPublicKey,privateKey: vapidPrivateKey,},};

webPush.sendNotification(
  pushSubscription,payload,options
);

现在,您可能已经注意到了这个问题。

在本地开发时,我可以通过以下方式启动我的盖茨比PWA网站

gatsby构建&& gatsby服务

然后从Gatsby PWA客户端打印出注册对象。然后,可以将其(注册对象)粘贴到Netlify lambda函数中,然后通过以下方式启动我的Netlify Lambda函数

netlify开发人员

但是,在部署Garsby + Netlify PWA网站时,lambda函数与PWA一起部署, 那么我如何确保lambda函数使用从客户端接收到的注册,这种注册仅在用户在部署后访问该网站时发生?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...