このコードは通知がすべて表示されていますが、通知ポップアップではアイコンが表示されず、通知をクリックするだけで閉じることができます。このコードは私が入手したものです(Google's tutorial)。FCMメッセージングサービスワーカーのクリックとアイコンからのChromeプッシュ通知は機能しません。
importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-messaging.js');
firebase.initializeApp({
'messagingSenderId': 'my id'
});
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload) {
var title = '';
var body = '';
if(payload && payload.notification) {
if(payload.notification.body) {
body = payload.notification.body;
if(payload.notification.title) {
title = payload.notification.title;
}
}
}
return self.registration.showNotification(title, {
body: body,
icon: '/img/logos/logo-short-blue.png'
});
});
self.addEventListener('notificationclick', function(event) {
event.notification.close();
var appUrl = '/' + event.notification.data.actionUrl;
event.waitUntil(clients.matchAll({
includeUncontrolled: true,
type: 'window'
}).then(activeClients => {
if (activeClients.length > 0) {
activeClients[0].navigate(appUrl);
activeClients[0].focus();
} else {
clients.openWindow(appUrl);
}
})
);
});