Bitte erklären Sie, wie Sie Push-Benachrichtigungen mit XHR und Javascript durchführen. Oder gibt es eine andere Möglichkeit, Push-Benachrichtigungen in progressiven Web-Apps zu senden. Ich habe Curl-Befehl erstellt und wenn ich es in meinem Terminal ausführen Push-Benachrichtigung gesendet, aber wie es auf Knopfdruck zu tun?So senden Sie Push-Benachrichtigungen in Chrome (Progressive Web Apps)
Hier ist mein cURL-Befehl: -
curl --header "Authorization: key=AIzaSxUdg" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"cxA-dUj8BTs:APAvGlCYW\"]}"
Dies ist, was ich versucht habe: -
function send()
{
navigator.serviceWorker.ready
.then(function(registration) {
registration.pushManager.getSubscription()
.then(function (subscription) {
curlCommand(subscription);
$.ajax({
url: "https://android.googleapis.com/gcm/send",
headers: {
Authorization: "key=AIzaSxUdg",
},
contentType: "application/json",
data: JSON.stringify({
"registration_ids": [endpoint]
}),
xhrFields: {
withCredentials: true
},
crossDomain: true,
type:"push",
dataType: 'json'
})
.done(function() {
alert('done');
})
.fail(function() {
alert('err');// Error
});
})
})
}
Aber es zeigt Fehler ----- XMLHttpRequest nicht https://android.googleapis.com/gcm/send laden kann. Die Antwort auf die Preflight-Anforderung übergibt die Zugriffskontrollprüfung nicht: Auf der angeforderten Ressource ist kein Header "Access-Control-Allow-Origin" vorhanden. Herkunft 'http://localhost:8880' ist daher nicht erlaubt ..
Dies ist jetzt möglicherweise mit XHR möglich. Siehe Salvas andere Antwort (http://stackoverflow.com/a/36894224/1299792) zur Diskussion. – Marklar