我正在尝试通过以下功能订阅网络推送。
function postSubscriptionBo() {
return navigator.serviceWorker.register('/service-worker.js')
.then(function(registration) {
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: APPLICATION_SERVER_KEY
};
return registration.pushManager.subscribe(subscribeOptions);
})
.then(function(pushSubscription) {
console.log('Received PushSubscription: ', JSON.stringify(pushSubscription));
return pushSubscription;
});
}
这些是当前的步骤:
1. 从 Firebase 控制台 > 云消息选项卡 > 服务器 key 获取应用程序服务器 key
2.使用window.btoa(server key)编码应用服务器 key
3.从服务器 key 中删除tailing =
4. 浏览器抛出异常:提供的网络推送applicationServerKey不合法。
关于我在这里做错了什么的建议? 谢谢。
最佳答案
在云消息选项卡中生成 Web 推送证书公钥(在同一云消息选项卡的底部)并添加它而不是服务器 key 后,它起作用了,而不是使用服务器 key 。
关于subscribe - 提供的网络推送 applicationServerKey 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60175635/