Wie kann eine Webanwendung Push-Benachrichtigungen an iOS-Geräte senden? [geschlossen]

121

Ich arbeite an einer Web-App. Wie kann ich Push-Benachrichtigungen an iOS-Benutzer senden, wenn neue Inhalte vorhanden sind?

Frankie
quelle
A Welche Benachrichtigung jetzt?
Suchst du mit Ton? Wenn Sie dann eine akustische Benachrichtigung wünschen, während das Mobiltelefon gesperrt ist; Der Name lautet Specific Push.
Mrbengi

Antworten:

93

Damit eine Webanwendung Push-Benachrichtigungen an ein mobiles Gerät wie das iPhone senden kann, muss sich das mobile Gerät registriert haben, um Push-Benachrichtigungen für eine bestimmte Anwendung zu erhalten. Die Registrierung für die Push-Benachrichtigung erfolgt über eine native App und kann nur über eine native App durchgeführt werden. Sobald die native App für die Push-Benachrichtigung registriert ist, kann sie das Autorisierungstoken an den Server senden, der in Verbindung mit dem zur Bereitstellung des nativen Clients verwendeten Zertifikat verwendet werden kann, um die Push-Benachrichtigungen an das mobile Gerät zu senden.

Wie in einer anderen Antwort angegeben, besteht eine Option darin, Ihre Webanwendung in eine native Anwendung zu verpacken. Dies bedeutet, dass Sie eine native Anwendung erstellen würden, die dem Benutzer, der Ihre Webanwendung zeigt, im Grunde eine UIWebView (für iPhone-Entwickler) präsentiert. Dies funktioniert zwar ziemlich genau wie der native Browser, Sie können jedoch die Möglichkeit hinzufügen, sich mithilfe der nativen Steuerelemente für Push-Benachrichtigungen zu registrieren.

Es wäre für Sie von Vorteil, das Push-Benachrichtigungsdokument von Apple zu lesen, da es einige ziemlich gute Informationen darüber enthält, wie Push-Messaging auf dem iPhone funktioniert.

Siehe diese Links von Peter Hosey:

Kris Babic
quelle
Vielen Dank für diese Antwort, ich habe das gleiche gesucht. Gilt dies auch, wenn Sie ein Meta-Tag "apple-mobile-web-app-fähig" hinzugefügt haben?
Mark Knol
1
Dies ändert die Art und Weise, wie Push-Benachrichtigungen stattfinden. Developers.google.com/web/updates/2015/03/…
Daniel Luca CleanUnicorn
1
Ab dem 02.02.2016 können sich FF, Chrome und Safari für Push von Webapp registrieren.
Yvon Huynh
9
Dies gilt ab 2016 nicht mehr. Sie können Benachrichtigungen von Web-Apps senden. Lesen Sie meine Antwort unten.
Collimarco
Aber die Webansicht funktioniert nicht gut, sie vermisst einige Funktionen und hat mehr Fehler als Safari
Black
46

Nein, nur native iOS-Anwendungen unterstützen Push-Benachrichtigungen.

UPDATE:
Mac OS X 10.9- und Safari 7-Websites können jetzt auch Push-Benachrichtigungen senden, dies gilt jedoch immer noch nicht für iOS. Lesen Sie das Programmierhandbuch für Benachrichtigungen für Websites . Schauen Sie sich auch die WWDC 2013-Sitzung 614 an .

Felix
quelle
1
Jetzt können Sie auf Maverix & Safari 7!
Themihai
Safari 7 kann diese Push-Benachrichtigung sicher erhalten. Je nachdem, welches Backend Ihre Web-App ausführt , gibt es einige Dienste, die dies ermöglichen: pushwoosh.com , pushmonkey.launchrock.com oder Sie können Ihren eigenen Server bereitstellen, der dem sehr ähnlich ist iOS-Push-Benachrichtigungen.
Tudor
Ich habe gehört, dass dies als spezifischer Push bezeichnet wird.
Mrbengi
3
Die OP-Frage bezieht sich speziell auf iOS. Die OSX / macOS-Unterstützung dafür ist nett, aber Push-Benachrichtigungen funktionieren immer noch nur unter iOS über eine native App.
Squarecandy
44

Unter iOS (ab iOS 10) noch nicht unterstützt , können Websites Push-Benachrichtigungen mit der Push-API an Firefox und Chrome (Desktop / Android) senden .

Die Push-API wird in Verbindung mit den älteren Webbenachrichtigungen verwendet , um die Nachricht anzuzeigen. Der Vorteil besteht darin, dass die Push-API die Zustellung der Benachrichtigung auch dann ermöglicht, wenn der Benutzer nicht auf Ihrer Website surft, da diese auf Service Workern basiert (Skripte, die vom Browser registriert werden und auch später im Hintergrund ausgeführt werden können) Ihr Benutzer hat Ihre Website verlassen.

Das Senden einer Benachrichtigung umfasst Folgendes:

  1. Ein Benutzer besucht Ihre Website (muss über HTTPS gesichert sein): Sie bitten um Erlaubnis, Push-Benachrichtigungen anzuzeigen, und Sie registrieren einen Servicemitarbeiter (ein Skript, das ausgeführt wird, wenn eine Push-Benachrichtigung empfangen wird).
  2. Wenn der Benutzer die Berechtigung erteilt hat, können Sie das Gerätetoken (Endpunkt) lesen, das an den Server gesendet und gespeichert werden soll
  3. Jetzt können Sie Benachrichtigungen an den Benutzer senden: Ihr Server sendet eine HTTP-POST-Anforderung an den Endpunkt (eine URL, die das Geräte-Token enthält). Der Server, der die Anfrage empfängt, gehört dem Browserhersteller (z. B. Google, Mozilla): Der Browser ist ständig mit ihm verbunden und kann die eingehenden Benachrichtigungen lesen.
  4. Wenn der Benutzerbrowser eine Benachrichtigung empfängt, führt er den Servicemitarbeiter aus, der für die Verwaltung des Ereignisses verantwortlich ist, die Benachrichtigungsdaten vom Server abruft und dem Benutzer die Benachrichtigung anzeigt

Die Push-API wird derzeit von Chrome , Firefox und Opera auf Desktop und Android unterstützt .

Sie können auch Push-Benachrichtigungen an Apple / Safari senden mithilfe von APNs Desktop senden. Der Ansatz ist ähnlich, jedoch mit vielen Komplikationen (Apple-Entwicklerzertifikate, Push-Pakete, Low-Level-TCP-Verbindung zu APNs).

Wenn Sie die Push-Benachrichtigungen selbst implementieren möchten, beginnen Sie mit den folgenden Tutorials:

Wenn Sie nach einer Drop-in-Lösung suchen , würde ich Pushpad vorschlagen , einen Dienst, den ich erstellt habe.

Update (September 2017): Apple hat mit der Entwicklung der Servicemitarbeiter für WebKit ( Status ) begonnen. Da die Servicemitarbeiter eine grundlegende Technologie für Web-Push sind, ist dies ein großer Schritt nach vorne.

Collimarco
quelle
3
Ab iOS 10 (öffentliche Beta) unterstützt Mobile Safari keine Push-Benachrichtigungen.
Robin Daugherty
1
Es war keine Korrektur Ihrer Antwort. Ich habe Informationen für Personen bereitgestellt, die Unterstützung für Safari Mobile suchen. Vielleicht unterstützen sie eines Tages Push-Benachrichtigungen, aber ab der von mir erwähnten Veröffentlichung nicht mehr.
Robin Daugherty
14
Safari ist der neue Internet Explorer. Apple ist das neue Microsoft. Ugh ....
Costa
1
@ Kevin Nein, leider gibt es keine Updates. Safari unter iOS unterstützt derzeit keinen Web-Push (Mai 2017).
Collimarco
1
Lassen Sie uns etwas Druck auf Apple ausüben: Ich habe einige Absätze geschrieben , die Sie kopieren und an den Apple Bug Tracker senden können, um Apple zu bitten, Web-Push zu iOS hinzuzufügen.
Collimarco
10

Google Chrome unterstützt jetzt den W3C-Standard für Push-Benachrichtigungen.

http://www.w3.org/TR/push-api/

BonzaiThePenguin
quelle
Hier ist ein ausführliches Tutorial: developer.google.com/web/updates/2015/03/…
Ayke
1
Umfasst dies Chrome für iOS? (Die ursprüngliche Frage war spezifisch für iOS)
Simon East
Noch kein iOS auf irgendetwas.
Müssen
9

TATSÄCHLICH .. Dies ist ganz neu Geist Sie .. Auf die neueste Version von OS X (Mavericks) Sie CAN - Push - Benachrichtigungen von einer Webseite auf dem Desktop senden. Aber laut Dokumentation NICHT iPhones:

Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.

Derzeit plant Apple, zwei Arten von Push-Benachrichtigungen zuzulassen: Push-Benachrichtigungen für die OS X-Website und lokale Benachrichtigungen.

Die offensichtliche Hürde dabei ist, dass dies weder auf PCs funktioniert noch Ihnen ermöglicht, Android-Push-Benachrichtigungen durchzuführen.

Darüber hinaus können Sie mit Versionen, die so alt sind wie Snow Leapord, Push-Benachrichtigungen von einer Website senden, solange diese Website geöffnet und aktiv ist. Das neue Mavericks-Betriebssystem ermöglicht Push-Benachrichtigungen, auch wenn die Site nicht geöffnet ist, vorausgesetzt, Sie haben dieser Site bereits die Berechtigung zum Senden von Push-Benachrichtigungen erteilt.

Aus dem Mund von Apple:

In OS X 10.9 und höher können Sie OS X-Website-Push-Benachrichtigungen von Ihrem Webserver mithilfe des Apple Push Notification Service (APNs) direkt an OS X-Benutzer senden. Nicht zu verwechseln mit lokalen Benachrichtigungen. Push-Benachrichtigungen können Ihre Benutzer erreichen, unabhängig davon, ob Ihre Website oder ihr Webbrowser geöffnet ist.

Um Push-Benachrichtigungen in Ihre Website zu integrieren, präsentieren Sie zunächst eine Benutzeroberfläche, über die sich der Benutzer für den Empfang von Benachrichtigungen anmelden kann. Wenn der Benutzer zustimmt, kontaktiert Safari Ihre Website und fordert ihre Anmeldeinformationen in Form einer Datei an, die als Push-Paket bezeichnet wird. Das Push-Paket enthält außerdem Benachrichtigungsressourcen, die in OS X verwendet werden, sowie Daten, die für die Kommunikation mit einem von Ihnen konfigurierten Webdienst verwendet werden. Wenn das Push-Paket gültig ist, erhalten Sie eine eindeutige Kennung für den Benutzer auf dem Gerät, die als Geräte-Token bezeichnet wird. Der Benutzer erhält die Benachrichtigung, wenn Sie die Kombination aus diesem Gerätetoken und Ihrer Nachricht oder Nutzlast an APNs senden.

Nach Erhalt der Benachrichtigung kann der Benutzer darauf klicken, um eine Webseite Ihrer Wahl im Standardbrowser des Benutzers zu öffnen.

Hinweis: Wenn Sie eine Auffrischung der APNs benötigen, lesen Sie das Kapitel „Apple Push Notification Service“ im Programmierhandbuch für lokale und Push-Benachrichtigungen. Obwohl das Dokument spezifisch für iOS- und OS X-Push-Benachrichtigungen ist, gelten weiterhin Paradigmen des Push-Benachrichtigungsdienstes.

Jonathan Nemeth
quelle
5
Dies bedeutet hoffentlich, dass wir webbasierte Push-Benachrichtigungen von iOS 8 oder 9 sehen. Ich drücke die Daumen.
Travis
5
In den Entwicklerdokumenten wird ausdrücklich darauf hingewiesen, dass Webbenachrichtigungen derzeit nicht für iOS gelten. Nur zur Klarstellung Ihres ersten Absatzes.
Daniel Sellers
1
Wenn sie Apple kennen, werden sie es für eine Version von iOS zulassen und für die nächste entfernen
Alexander Derck
7

Nein, eine Webanwendung kann keine Push-Benachrichtigung erhalten. Sie können Ihre Webanwendung in eine native App mit Push-Benachrichtigungen einbinden.

JustSid
quelle
Was meinst du mit "Wrap your Webapp in eine native App"?
Frankie
1
Frankie: Nun, nur eine native App, die eine UIWebView anzeigt, die dann Ihre Site lädt. So können Sie Ihre Webanwendung als native App auf dem Telefon haben.
JustSid
Ich denke also, in Xcode wäre dies "WindowBase Aplication" für native Apps, oder?
Frankie
Jetzt können Sie auf Maverix & Safari 7!
Themihai
1
@ DanDascalescu Warum sollte ich? Unter iOS ist dies immer noch nicht möglich, worum es bei der Frage ging. Die Antwort ist nicht falsch.
JustSid
2

Das W3C startete 2010 eine Arbeitsgruppe zur Implementierung von Benachrichtigungen:
http://www.w3.org/2010/web-notifications/

Diese Arbeitsgruppe entwickelt APIs, die diese Mechanismen für Webanwendungen verfügbar machen, sodass Webentwickler, die beispielsweise webbasierte E-Mail-Clients und Instant Messaging-Clients erstellen, ihr Webanwendungsverhalten enger in die Benachrichtigungsfunktionen der Betriebssysteme integrieren können ihrer Endbenutzer.

Schließlich ist das Ergebnis wie ein schlechter Witz, da es nur funktioniert, wenn die spezifische Website geöffnet ist: http://alxgbsn.co.uk/notify.js/

Ich denke, sie haben es versäumt, die Möglichkeit zum Hinzufügen von Push-URLs zu implementieren, damit der Browser Benachrichtigungen anfordern kann, während er im Hintergrund ausgeführt wird - und vor allem, wenn alle Registerkarten geschlossen wurden.

mgutt
quelle
2

Sie können HTML5-Websockets verwenden, um Ihre eigenen Push-Nachrichten einzuführen. Aus Wikipedia :

"Für den Client sollte WebSocket in Firefox 4, Google Chrome 4, Opera 11 und Safari 5 sowie in der mobilen Version von Safari in iOS 4.2 implementiert werden. Auch der BlackBerry Browser in OS7 unterstützt WebSockets."

Dazu benötigen Sie Ihren eigenen Provider-Server, um die Nachrichten an die Clients zu senden.
Wenn Sie APN (Apple Push Notification) oder C2DM (Cloud to Device Message) verwenden möchten, benötigen Sie eine native Anwendung, die über den Online-Shop heruntergeladen werden muss.

Foyzul Karim
quelle
6
Nun, es würde nur funktionieren, wenn der Browser geöffnet und auf der Webapp-Seite ist. Im Gegensatz zu Push-Benachrichtigungen, die auch dann funktionieren, wenn die Anwendung deaktiviert ist.
Hagai L
2

Pushbullet ist dafür eine großartige Alternative.

Der Benutzer muss jedoch ein Pushbullet-Konto und die App (iOS, Android) oder das Plugin (Chrome, Opera, Firefox und Windows) installiert haben.

Sie können die API verwenden indem Sie eine Pushbullet-App erstellen und den Benutzer Ihrer Anwendung mit oAuth2 mit dem Pushbullet-Benutzer verbinden.

Die Verwendung einer Bibliothek würde es viel einfacher machen, für PHP könnte ich ivkos / Pushbullet-for-PHP empfehlen .

Tim
quelle
1

Überprüfen Sie die Xtify Web Push-Benachrichtigungen. http://getreactor.xtify.com/ Mit diesem Tool können Sie Inhalte auf eine Webseite übertragen und Besucher ansprechen sowie Nachrichten basierend auf Browser-DOM-Ereignissen auslösen. Es wurde speziell für mobile Geräte entwickelt.

Jeremy
quelle