我正在开发webApp,并希望使用ServiceWorker发送通知。
我有我的sw.js和我的main.js.我能够注册我的服务工作者,并且我能够使用如下命令发送通知:
navigator.serviceWorker.getRegistration().then(function(reg) {
reg.showNotification('Title', {
body: 'body'
});
});
但这并不是在' sw.js'中定义我的推送事件。
这里的参考是我的" sw.js":
self.addEventListener('push', function(event) {
console.log('[Service Worker] Push Received.');
console.log(`[Service Worker] Push had this data: "${event.data.text()}"`);
const title = 'title test from push';
const options = {
body: 'body test from push.',
icon: 'images/icon.png'
};
event.waitUntil(self.registration.showNotification(title, options));
});
const title = 'Push Codelab';
const options = {
body: 'Yay it works.',
icon: 'images/icon.png',
badge: 'images/badge.png'
};
self.registration.showNotification(title, options);
作为附加信息,如果我进入开发者工具,则在Chrome中使用>应用程序选项卡=>服务工作者,点击"推送"按钮,引发正确的推送事件。但是,再一次,我无法从我的主页面触发它。