2017-01-23 11 views
0

Firebase Cloud Messagingを試しています。それは素晴らしいものですが、私はそれを私のために働かせるのが最も難しい時期です。Firebase messaging.setBackgroundMessageHandlerがメッセージを受信して​​いません

私が直面しています問題は、ここでは、サービス労働者であるである私のfirebase-messaging-sw.js:私がメッセージを送信すると、メッセージが受信されます(私はところでPHP-FCMを使用しています)

console.log('Service worker is loaded!'); 

self.addEventListener('install', function(event) { 
    console.log('Service Worker is being installed.'); 
}); 

self.addEventListener('activate', function(event) { 
    console.log('Service Worker is being activated.'); 
}); 

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

firebase.initializeApp({ 
    'messagingSenderId': ' ... ' 
}); 

var messaging = firebase.messaging(); 

messaging.setBackgroundMessageHandler(function(payload){ 
    console.log('Received background message: ', payload); 

    return self.registration.showNotification('Title', {'body': 'Body'}); 
}); 

ブラウザで期待どおりときページのフォーカスがonMessage(...)になっていますが、ページのフォーカスがないかブラウザが閉じているときには表示されません。サービスワーカーはメッセージを受信しません!

「受信した背景メッセージ:...」という行は決して表示されません。メッセージハンドラがまったく登録されていないことを意味します。

は、ここでサンプルメッセージ応答です:

{ 
    "from": " ... ", 
    "collapse_key": "do_not_collapse", 
    "data": { 
    "id": "111" 
    }, 
    "priority": "high", 
    "notification": { 
    "title": "Hi there", 
    "body": "Message body", 
    "badge": "1", 
    "color": "#ffffff" 
    } 
} 

ここに問題がある可能性がありますか?それは私を夢中にさせている。

答えて

1

私はあなたのJavaScriptの真ん中に輸入のルーツを定義することはできませんが、私はそれらの呼び出しが最上部にある必要があると思います。

また、バッジの値と色は、FCM SDKではサポートされていません。バッジを設定する場合は、バックグラウンドメッセージハンドラを使用して通知を表示し、通常のAPiを使用し、そのAPiを通じてバッジを定義することができます

関連する問題