Uncaught TypeError : self.showLocalNotificationWrap is not a function
Uncaught TypeError : self.showLocalNotificationWrap is not a function
所以我尝试使用网络推送发送通知,但它不起作用。
我看到事件已收到,但没有显示通知。
这是我的 Service Worker 中 'push' 事件的代码:
self.addEventListener('push', async (event) => {
console.log("Push received data - ", event.data.text());
const pushData = await event.data.text();
let data, title, body;
try{
data = await JSON.parse(pushData);
title = data.title;
body = data.body;
}catch(e){
title = "untitled";
body = pushData;
}
const options = {
title : title,
body : body,
icon : '/favicon.ico',
}
self.showLocalNotificationSW(title, body, self.registration);
})
并且 showLocalNotificationSw
推送事件调用:
const showLocalNotificationSW = async (title, body, swRegistration) => {
swRegistration.showNotification(title, options);
}
我在控制台中看到它说 self.showNotificationWrap
不是控制台中的函数。
这是什么意思?
我没有任何名为 showNotificationWrap 的函数。
错误:
sw.js:48 Uncaught TypeError: self.showLocalNotificationWrap is not a function
at sw.js:48
我该如何解决这个问题?
我该如何解决这个问题?
原来我只需要注销并重新注册 service worker 就可以解决问题。
修改后的推送事件代码如下:
self.addEventListener('push', async function received(event) {
let data, title, body;
data = event.data.text();
console.log("Push received event - " + data);
try{
data = JSON.parse(data);
console.log(JSON.stringify(data));
title = data.title;
body = data.body;
}catch(error){
console.error(error);
title = "Undefined";
body = data;
}
event.waitUntil(showNotificationSW(title, body, self.registration));
})
所以我尝试使用网络推送发送通知,但它不起作用。 我看到事件已收到,但没有显示通知。
这是我的 Service Worker 中 'push' 事件的代码:
self.addEventListener('push', async (event) => {
console.log("Push received data - ", event.data.text());
const pushData = await event.data.text();
let data, title, body;
try{
data = await JSON.parse(pushData);
title = data.title;
body = data.body;
}catch(e){
title = "untitled";
body = pushData;
}
const options = {
title : title,
body : body,
icon : '/favicon.ico',
}
self.showLocalNotificationSW(title, body, self.registration);
})
并且 showLocalNotificationSw
推送事件调用:
const showLocalNotificationSW = async (title, body, swRegistration) => {
swRegistration.showNotification(title, options);
}
我在控制台中看到它说 self.showNotificationWrap
不是控制台中的函数。
这是什么意思?
我没有任何名为 showNotificationWrap 的函数。
错误:
sw.js:48 Uncaught TypeError: self.showLocalNotificationWrap is not a function
at sw.js:48
我该如何解决这个问题?
我该如何解决这个问题?
原来我只需要注销并重新注册 service worker 就可以解决问题。
修改后的推送事件代码如下:
self.addEventListener('push', async function received(event) {
let data, title, body;
data = event.data.text();
console.log("Push received event - " + data);
try{
data = JSON.parse(data);
console.log(JSON.stringify(data));
title = data.title;
body = data.body;
}catch(error){
console.error(error);
title = "Undefined";
body = data;
}
event.waitUntil(showNotificationSW(title, body, self.registration));
})