2016-04-07 15 views
0

メッセージをプッシュするだけでなく、表示しないプッシュすることもできます(つまり、通知を一切表示しない)。プッシュ。クロムプッシュ通知:非表示のプッシュを送信

私はこのコードを試しました。それはうまくいくようですが、一部のデバイスでは、「このサイトはバックグラウンドで更新されました」というメッセージが表示され、混乱します。

self.addEventListener('push', function(event) { 
    event.waitUntil(
     fetch(my_awesome_url) 
     .then(function(response) { 
      if (response.status !== 200) { 
       throw new Error('Server code: ' + response.status); 
      } 

      return response.json().then(function(data) { 
       if (typeof data.data !== 'object') return; // invisible push, show nothing 
       var notificationData = { 
        body: data.content, 
        data: data.data, 
        tag: data.id || Math.random(), 
        icon: typeof data.data == 'object' ? data.data.image : '' 
       }; 

       return self.registration.showNotification(data.title, notificationData); 
      }); 
     }) 
     .catch(function (err) { 
     }) 
    ); 
}); 

実際にブラウザに何も表示されないようにするにはどうすればよいですか?

答えて

1

できません。あなたは次の行を記述しなければならなかったでしょう、あなたのクライアント側のコードで

subscribe({userVisibleOnly: true}); 

ブラウザメッセージを表示のみサポートプッシュ通知からです。

不正なサブスクリプションのエラー応答を取得するまで、メッセージを送信しないでください。

この質問への偉大な答えはここに、より具体的であり:Google Chrome Silent Push Notifications

+2

Firefoxはユーザー見える効果はありません*一部*通知を送信する、それが機能を悪用サイトを避けるために、いくつかのヒューリスティックを持っていることができます。ここでいくつかの実験を行うことができます:https://serviceworke.rs/push-quota.html。 – Marco

関連する問題