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) {
        })
    );
});

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

4

1 に答える 1

1

できません。

クライアント側のコードでは、次の行を記述する必要がありました。

subscribe({userVisibleOnly: true});

これは、ブラウザーがメッセージを表示するプッシュ通知のみをサポートしているためです。

必要になるまでメッセージを送信してから、不適切なサブスクリプションのエラー応答をキャッチしないでください。

詳細については、この質問に対する優れた回答がここにあります: Google Chrome Silent Push Notifications

于 2016-04-07T22:41:44.953 に答える