0

Chromeで通知を受け取るサービスワーカーは ですが、Firefoxでは受信できません。Google Cloud Messaging(GCM)がFirefoxと連携していません

プッシュリスナーは(それをデバッグすることで)Firefoxでは全く発生しません、

PS:サービスワーカーが正常に登録されているが、それは通知を受けていません。

私のコードの問題点は何ですか?新しいメッセージチャネル(MessageChannel.MessageChannel())を設定サービスワーカー、とcomunicateおよびサービスワーカーにWorker.postMessage()を呼び出すことにより、サービスワーカーにポート2を介して送信するChannel Messaging APIを使用している場合は、このdocumentationから基づい

self.addEventListener('install', function (event) { 
event.waitUntil(self.skipWaiting()); 
}); 

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

self.addEventListener('push', function (event) { 
event.waitUntil(
    fetch('/path', { 
     credentials: 'include', 
     method: 'post', 
    }) 
    .then(function (response) { 
     return response.json() 
      .then(function (data) { 
       return self.registration.showNotification(data.title, { 
        body: data.body, 
        icon: '/images/image.png', 
       }); 
      }); 
    }) 
    .catch(function (error) { 
     console.error('wrong', error); 
    }) 
); 
}); 

答えて

1

通信チャネルを開放する。サービスワーカーから返信されたメッセージに応答するリスナも設定する必要があります。

GCMを正しく設定する方法については、に必ず従ってください。この関連リンクを確認することもできます:GCM Equivalent for Firefox

+0

私は通知のためのgoogle gcmのドキュメントを使用しています。私はそれをFirefoxと統合したいと思います。 https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web?hl=ja –

1

プッシュ通知に登録するには、クライアントでコードを共有する必要があります。

プッシュ通知用に登録すると、エンドポイントでサブスクリプションが受信されます。

  • あなたがFirefoxで正しくプッシュ通知のために登録されています

    ここ
    navigator.serviceWorker.ready 
         .then((reg) => reg.pushManager.subscribe({ userVisibleOnly: true })) 
         .then((subscription) => { 
          const endpoint = subscription.endpoint; 
          // endpoint will have different server values when using this code in Chrome or Firefox. 
    

    が考慮すべき重要なノートです:Firefoxでは、そのエンドポイントは、Mozillaが提供するGCMのURLが、プッシュサーバになることはありませんか?

  • プッシュ通知の実行に必要なエンドポイントのURLを確認してください。これはmozillaサーバーですか?
  • プッシュを受信したことを確認するために、プッシュリスナーの直後にブレークポイントを設定します。
+0

回答ありがとうございました。私はMozillaサーバーからエンドポイントを取得できましたが、 mozillaサーバーから通知を受け取ることができません。 mozillaサーバーのために別のプッシュリスナーを作成する必要があります –

+0

これは私が行った手順です(https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web? hl = en –

+0

私はあなたのアドバイスをチェックしました。最後のものは動作しません。プッシュリスナーはFirefoxでは起動されませんが、Googleでは正常に動作します。 –

関連する問題