現在のアーキテクチャでは、GCM API を使用してプッシュ通知を送信しています。これにより、Service Worker で「プッシュ」イベントがトリガーされます。Service Worker は、通知にデータを追加します。
なんらかのエラーが原因で Service Worker がデータを追加できない場合、空白の通知が表示されます。
Service Worker は GCM から送信された通知を表示しないようにできますか?
現在のアーキテクチャでは、GCM API を使用してプッシュ通知を送信しています。これにより、Service Worker で「プッシュ」イベントがトリガーされます。Service Worker は、通知にデータを追加します。
なんらかのエラーが原因で Service Worker がデータを追加できない場合、空白の通知が表示されます。
Service Worker は GCM から送信された通知を表示しないようにできますか?
Google Developersのプッシュ通知ガイドから:
{userVisibleOnly: true}
subscribe() メソッドに引数を渡す必要があります。これは、プッシュ メッセージを受信したときに常に通知が表示されることをブラウザに伝えます。現在、通知を表示することは必須です。
要するに、(ブラウザーに表示することを約束した後) プッシュに応答して何かを表示しない場合、ブラウザー (少なくとも Chrome) は単に何かを表示するだけです。ただし、これはある時点で変更される可能性が高いようです。
ヒットしたエラー状態では、とにかく独自の通知を表示しているようで、それを埋めることができなかったため、空白で表示されます。
最善の選択肢は、一般的なテキストにフォールバックすることです。あなたはそれを表示しない危険を冒すことができますが、数回後にクロムは独自の通知を表示し始めます(あなたが「約束した」後、あなたは {userVisibleOnly: true} と言って通知を表示します)
クロムコードを見て考えられる最良の手順は次のとおりです。
1) 表示したい通知を表示してみてください。2) 何らかの理由で表示されない場合は、フォアグラウンドにいるかどうか、または通知の 1 つが既に表示されているかどうかを確認してください。3) そうでなければ、通知を表示する必要があります。そうしないと、chrome が通知を表示する可能性が高く、危険を冒す価値はおそらくありません。一般的なテキストを追加して表示するだけです。