Ich habe eine Webanwendung. Ich möchte die integrierte HTML 5-Benachrichtigungs-API verwenden, um Benachrichtigungen vom Server zu senden, wenn sich der Benutzer auf einer bestimmten Seite befindet. Ist es möglich?Wie kann ich Push-Benachrichtigungen in einer HTML5-Webanwendung ausführen?
Antwort
Sie können echte Push-Benachrichtigungen mit Web-Apps heute in Chrome mit Service Workers und PushManager von W3C Push API.
Siehe den Artikel Push Notifications on the Open Web für eine Schritt-für-Schritt-Anleitung und Code-Schnipsel, die Sie verwenden können. Hier ist ein Diagramm aus diesem Artikel, das erklärt, wie die Benutzeroberfläche aussieht.
Ein implementation of the Push API has already landed in Firefox zu; Es ist Ziel für den Versand im November 2015 in Firefox 42. Und Microsoft hat auch indicated that the Push API is also under consideration for implementation in Edge team.
Unten ist ein einfaches Codebeispiel, entliehen von MDN.
this.onpush = function(event) {
console.log(event.data);
}
navigator.serviceWorker.register('serviceworker.js').then(
function(serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.subscribe().then(
function(pushSubscription) {
console.log(pushSubscription.subscriptionId);
console.log(pushSubscription.endpoint);
}, function(error) {
console.log(error);
}
);
});
Es hängt davon ab, was Sie erreichen wollen:
- , wenn Sie ein Push-Benachrichtigungen an den Benutzer während senden wollen, ist Ihre Website surfen Sie WebSockets verwenden können, und (optional) die Benachrichtigungen API Geben Sie der Benachrichtigung einen "nativen" Stil
- Wenn Sie Off-Site-Push-Benachrichtigungen (die auch geliefert werden, wenn der Benutzer nicht auf Ihrer Website ist) möchten, sollten Sie eine Kombination der Push-API (um das Offline-Ereignis auszulösen)) und die Benachrichtigungs - API, um die Benachrichtigung anzuzeigen (Sie kann read more here oder verwenden Sie einen Dienst wie
Pushpad ist nicht kostenlos. Wissensfreigabe sollte frei sein, niemand teilt es kostenlos alle Push-Benachrichtigungen Referenzen Geld fragen. – YumYumYum
@YumYumYum Die Frage ist zu weit gefasst, um hier eine vollständige Antwort zu geben: Wenn Sie von vorne anfangen möchten, schlage ich vor, dass Sie [diese Antwort] lesen (http://stackoverflow.com/a/34920874/51387) (dass Ich habe bereits in meiner Antwort oben verwiesen). Es enthält einen Überblick über die Push-API und einen Link zu [dem Tutorial] (https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web), das mir geholfen hat loslegen (trotz der Warnung auf der Seite ist der Artikel heute noch nützlich). – collimarco
- 1. Wie kann ich RavenDB in einer Shared Hosting-Umgebung ausführen?
- 2. Wie kann ich in einer Datenbank gespeicherten Code ausführen?
- 3. Wie kann ich Nightwatch-Tests in einer bestimmten Reihenfolge ausführen?
- 4. Wie kann ich Ctags in einer großen Codebasis ausführen?
- 5. Wie kann ich "cpan" in Emacs ausführen?
- 6. Wie kann ich sqlcmd.exe von einer ASP-Seite ausführen?
- 7. Wie kann ich PM2 auf einer bestimmten Knotenversion ausführen?
- 8. Wie kann ich Redis im Hintergrund ausführen?
- 9. Wie kann ich diese Abfrage schneller ausführen
- 10. Wie kann ich com.apple.tools.info-plist-Dienstprogramm ausführen?
- 11. Kann ich PowerShell-Skripte in einer Silverlight-Anwendung ausführen?
- 12. Kann ich LocalDb "in-memory" ausführen
- 13. Kann ich setTimeout/setInterval in $ .submit() ausführen?
- 14. Kann ich GUI-Anwendungen in CoreOS ausführen?
- 15. Wie kann ich HTML Code nicht ausführen?
- 16. Wie kann ich feststellen, ob ich für gcc4 kompilierte ausführbare Dateien auf einer Box ausführen kann?
- 17. Wie kann ich Ruby-Tests automatisch ausführen?
- 18. Wie kann ich IIS7 schneller ausführen?
- 19. Wie kann ich Rails Server Daemon ausführen?
- 20. Wie kann ich Archetypes.querywidget Testsuite lokal ausführen?
- 21. Wie kann ich eine UDF in mehreren Zeilen ausführen?
- 22. Wie kann ich in ASP.NET MVC 2 "causesvalidation = false" ausführen?
- 23. Wie kann ich mehrere Datenbankanforderungen in ASP.NET C# ausführen?
- 24. Wie kann ich einen Stapelbefehl direkt in C# ausführen?
- 25. Wie kann ich die delegierte Methode in IBAction ausführen?
- 26. Kann ich ipython-Skripte ausführen?
- 27. Ich kann nuttcp nicht in Docker ausführen
- 28. Wie kann ich ElasticSearch in IntelliJ IDEA einrichten und ausführen?
- 29. Kann ich JavaScript in Swift-Code ausführen?
- 30. Ich kann SparkBWA nicht ausführen
Die Clientseite ist einfach. Was ist mit der Serverseite? Ist das nicht das Fleisch der Frage? – Pacerier
Wird der Google Cloud-Messaging-Ansatz (Firebase) nur für Chrome in Betracht gezogen oder funktioniert er auch für Firefox? – Vetterjack