GCM to FCM для расширений Chrome - PullRequest
3 голосов
/ 23 марта 2019

Я использую Gmail, Calendar и Drive API для получения push-уведомлений в моем расширении Chrome через chrome.gcm.onMessage

Но chrome.gcm в настоящее время устарел , и я предполагаю, что chrome.gcm.onMessage перестанет работать в апреле.Есть ли альтернативное решение?Я пытаюсь использовать клиент Firebase JS в качестве сервисного работника, я получаю сообщения в setBackgroundMessageHandler, но они заставляют отображать уведомления на рабочем столе!Я хочу обрабатывать сообщения данных самостоятельно, как я это делал с chrome.gcm.onMessage

manifest.json

"manifest_version": 2,
...
"gcm_sender_id": "103953800507"
...

background.js

navigator.serviceWorker.register('js/firebase-messaging-sw.js')

// Also how does this all play in now with FCM...
chrome.instanceID.getToken({
   authorizedEntity: [MY_GCM_SENDER_ID],
   scope: "GCM"
}).then(token => {

});

js /firebase-messaging-sw.js

importScripts('https://www.gstatic.com/firebasejs/5.9.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.9.1/firebase-messaging.js');

firebase.initializeApp({
    messagingSenderId: [MY_GCM_SENDER_ID] // Same I used to use with chrome.instanceID.getToken I guess???
});

const messaging = firebase.messaging();

messaging.setBackgroundMessageHandler(function(payload) {
    console.log('[firebase-messaging-sw.js] Received background message ', payload);
    // Customize notification here
    var notificationTitle = 'Background Message Title';
    var notificationOptions = {
      body: 'Background Message body.',
      icon: '/images/icon128.png'
    };

    return self.registration.showNotification(notificationTitle,
      notificationOptions);
  });
...