如何解决推送通知如何与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 举报,一经查实,本站将立刻删除。