gpt4 book ai didi

javascript - 推送通知的“showNotification”未定义

转载 作者:行者123 更新时间:2023-12-02 23:25:18 26 4
gpt4 key购买 nike

我正在尝试将我的网站通知从浏览器推送到 Android 和 PC,为此我尝试过 push notifications .

我按照文档并输入了以下代码 -

Notification.requestPermission(function(status) {
console.log('Notification permission status:', status);
});

function displayNotification() {
if (Notification.permission == 'granted') {
navigator.serviceWorker.getRegistration().then(function(reg) {
console.log("Reg -"+reg);
reg.showNotification('Hello world!');
});
}
else{
console.log(Notification.permission);
}
}

权限已授予,但我收到 reg 错误,因为它未定义

这是我的控制台的屏幕截图 -

enter image description here

最佳答案

请参阅 Chrome 调试面板上的“应用程序”->“Service Workers”选项卡。我认为您没有在应用程序中连接服务人员。对于通知逻辑,您需要创建任何服务工作线程并启用它。

例如,在根 js 文件中添加以下代码:

if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js');
}

并创建一个包含以下内容的文件sw.js:

self.addEventListener('install', (event) => {
console.log('Installed');
});

self.addEventListener('activate', (event) => {
console.log('Activated');
});

self.addEventListener('fetch', (event) => {
console.log('Fetch request');
});

附注并且您的 console.log("Reg -"+reg); 位于 reg init 之前,因此它是 undefined :)

关于javascript - 推送通知的“showNotification”未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56760670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com