我正在try 以下代码:
navigator.serviceWorker.register('service-worker.js')
.then((registration) => {
const messaging = firebase.messaging().useServiceworker(registration)
console.log(messaging)
messaging.requestPermission().then(function () {
console.log('Notification permission granted.')
messaging.getToken().then(function (currentToken) {
if (currentToken) {
console.log(currentToken)
}
})
})
})
我的 list :
{
"name": "Herot-Eyes",
"short_name": "herot-eyes",
"gcm_sender_id": "103953800507",
"icons": [
{
"src": "/static/img/icons/herot-eyes-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/static/img/icons/herot-eyes-512x512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "/static/img/icons/apple-touch-icon-180x180.png",
"sizes": "180x180",
"type": "image/png"
}
],
"start_url": "/",
"display": "fullscreen",
"orientation": "portrait",
"background_color": "#000000",
"theme_color": "#2196f3"
}
出什么事了?我的控制台.日志(log)(消息)返回出厂错误,如下所示:
错误推送集:"用于存储/查找的FCM推送集不正确
"服务工作者作用域必须是至少包含一个
"请确保在中正确设置了"messagingSenderId"
"订阅必须是有效的PushSubscription."不好的标记:"这个
"公共VAPID密钥不是65字节的UINT8array."
"setBackgroundMessageHandler()的输入必须是函数."
"无法执行服务工作者范围的删除try
"无法作为令牌执行令牌的删除try
"无法删除乏味的密钥."
"我们无法注册默认的服务人员.
"无法删除当前保存的令牌."获取订阅失败
"try 获取任何现有推送时出错
"请将您的web应用程序 list 的'gcm_sender_id'值更改为
"必须将有效令牌传递到deleteToken(),即来自的令牌."
"公钥必须是字符串."保存的令牌无效
"无法访问已保存令牌的详细信息."
"找不到FCM令牌,因此无法重新订阅.
"尽管服务人员注册成功,但仍存在一些问题
"试图向不存在的窗口客户端发送消息."
"通知已被阻止."仅在sw中可用
"此方法在服务工作者上下文中可用."
"此方法在窗口上下文中可用."权限被阻止
"所需的权限未被授予,而是被阻止."
"所需的权限未被授予,而是被取消."
"解密时,公钥不等于65字节."
"此方法应被扩展类重写."
"用于推送的服务人员被裁掉了."
"服务人员注册是预期的输入."
"向FCM订阅用户时出现问题:{$message}"
"获取FCM令牌时,FCM返回无效响应."
"FCM在订阅用户推送时未返回令牌."
"从FCM取消订阅用户时出现问题:{$message}"
"从FCM更新用户时出现问题:{$message}"
"FCM在更新要推送的用户时未返回令牌."
"为推送重新订阅FCM令牌时出错
"此浏览器不支持使用firebase所需的API
"在调用getToken()之前,必须调用useServiceWorker()以确保