これはwebappで私のために働いた解決策です。それはタイトルと本文の画像とともに通知を表示し、ユーザーのクリックを処理します。
firebaseメッセージング-sw.js
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js');
// Initialize Firebase
var config = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_AUTH_DOMAIN",
databaseURL: "YOUR_DB_URL",
projectId: "YOUR_PROJ_ID",
storageBucket: "YOUR_STORAGE_BUCKET",
messagingSenderId: "YOUR_SENDER_ID"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function (payload) {
console.log('Handling background message ', payload);
return self.registration.showNotification(payload.data.title, {
body: payload.data.body,
icon: payload.data.icon,
tag: payload.data.tag,
data: payload.data.link
});
});
self.addEventListener('notificationclick', function(event) {
event.notification.close();
event.waitUntil(self.clients.openWindow(event.notification.data));
});
JSONメッセージ
{
"message": {
"token": "YOUR_TARGET_APP_TOKEN",
"data": {
"title": "FCM Message",
"body": "This is an FCM Message",
"icon": "https://shortcut-test2.s3.amazonaws.com/uploads/role_image/attachment/10461/thumb_image.jpg",
"link": "https://yourapp.com/somewhere"
}
}
}
申し訳ありません。これについて言及するのを忘れてしまった:それはうまく動作し、onMessageメソッドが呼び出され、私はメッセージで欲しいものを行うことができます。ページにフォーカスがない場合、通知は表示されますが、決して呼び出されないので、setBackgroundMessageHandlerメソッド内で通知をカスタマイズすることはできません。 – Mathias