aufgerufen Ich versuche, Push-Nachrichten von GCM zu erhalten. Ich folgte einfach der Anleitung und registriert die Servicemitarbeiter wie folgt: -Push-Ereignis von Service Worker wird nicht
function urlB64ToUint8Array(base64String) {
const padding = '='.repeat((4 - base64String.length % 4) % 4);
const base64 = (base64String + padding)
.replace(/\-/g, '+')
.replace(/_/g, '/');
const rawData = window.atob(base64);
const outputArray = new Uint8Array(rawData.length);
for (let i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i);
}
return outputArray;
}
var subscribeForPush = function() {
navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey : urlB64ToUint8Array('<API-KEY>')
})
.then(function(subscription) {
console.log("Subscription for Push successful: ", subscription);
})
.catch(function(error) {
console.log("Subscription for Push failed", error);
});
});
};
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
subscribeForPush();
}).catch(function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
});
}
Nun, ich die Geräte-ID erhalten ("cw4jK8NhJgY: APA91bHr64E_kSdh7kN_VjcZRKulPf8KPLJLBjtnHI2qkYzx3-I9aUhunjzVcJjLtkHl9zvN8ys80gADK8tV8SueLX1R2jS0xgrf1Ur6cDw3jNjloUJp8PtWaIN-cEKXj69TZ9-D2Hiw")
In meinem Dienst Arbeiter-Datei, ich höre einfach Nachrichten drücken, wie: -
self.addEventListener('push', function(event) {
console.log(event)
});
Ich bin in der Lage, Nachrichten senden die Nachricht mit Terminal GCM und erhalten: -
{"multicast_id":4983340130324592129,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1483043226210433%cc9b4facf9fd7ecd"}]}
Aber ich weiß nicht, warum ich sehe anmeldet Push-Zuhörer nicht? Ich stecke mehr als zwei Tage in dieser Ausgabe fest. Kann mir bitte jemand hier helfen? Ich mache das in localhost.
Sie können diese [verwandte SO-Post] (http://stackoverflow.com/a/20677002/5832311) überprüfen und versuchen die Workarounds gegeben, wenn es hilft. Manchmal dauert es einige Zeit, bis der Push ankommt. Überprüfe also, was das "time_to_live" (https://developers.google.com/cloud-messaging/http-server-ref#downstream-http-messages-json) von Push hast du gesendet. – abielita