2. Einrichten von Web Push auf Kundenseiten (Glocke*)
2.1. Voraussetzungen
Web Push Notifications funktionieren nur auf Websites, die das HTTPS-Protokoll verwenden. Folgende Schritte sind für die Umsetzung erforderlich:
2.2. Einschränkungen
Die Glocken-Funktion stellt einen Ein-Klick-Weg zur An- bzw. Abmeldung von Web Push Nachrichten dar. Es ist daher nicht möglich, wenn mehrere Push-Listen verwendet werden, sich für einzelne Push-Listen an- bzw. von einzelnen Push-Listen abzumelden.
2.3. Scripte
Auf jeder Seite, auf der die Glocke angezeigt werden soll, müssen die erforderlichen Scripte wie unter 2.5. beschrieben eingebunden werden.
*Glockensymbol dient der einfachen An- und Abmeldung von Web Push Nachrichten
Diese sind:
- jQuery
- jQuery „Cookies“ Plugin
- Konfiguration der Web Push Glocke
- Vorzugsweise kundenspezifische Einstellungen in eigener Datei
- AGN.webpush.bell.prepare.js
- AGN.webpush.api.js
- AGN.webpush.bell.js
Das Laden der Skripte erfolgt vorzugsweise in dieser Reihenfolge.
<!-- jQuery + plugins -->
<script type="text/javascript" src="jquery.js" />
<script type="text/javascript" src="jquery.cookies.js" />
<!-- Web push configuration -->
<script type="text/javascript" src="AGN.webpush.bell.config.js" />
<script type="text/javascript" src="custom-webpush-config.js" />
<!-- Web push API -->
<script type="text/javascript" src="AGN.webpush.api.js" />
<!-- Register service worker -->
<script type="text/javascript" src="AGN.webpush.bell.prepare.js" />
<!-- Show bell -->
<script type="text/javascript" src="AGN.webpush.bell.js" />
Hinweis: Ggf. sind Pfade und Dateinamen der Skripte anzupassen, da diese von der Infrastruktur und der Version der Skripte abhängen können!
2.4. manifest.json
Zur Unterstützung von Google Chrome ist ein Manifest-Dokument zu referenzieren. Dazu im <head>-Abschnitt diese Zeile eintragen:
Hinweis: Ggf. sind Pfad und Dateinamen der Manifest-Datei anzupassen, da diese von der Infrastruktur abhängen können!
2.5. Service Worker
Der Service Worker ist für die Anzeige der Push Nachrichten zuständig. Der Code findet sich in der Datei webpush-client-sw.js. Diese Datei wird nicht direkt in die Webseite eingebunden, sondern wird vom Browser selber geladen.
Die Service Worker-Datei kann in jedem beliebigen Verzeichnis der Domain liegen.
Der Gültigkeitsbereich entspricht dem URL-Pfad (ohne Protokoll, Domain und Dateiname), unter dem der Service Worker abgerufen wird, oder einem beliebigen Unterpfad davon, der nicht zwingend existieren muss. Sollten sich mehrere Service Worker im gleichen Verzeichnis befinden, so muss jeder einer eindeutigen Gültigkeitsbereich zugewiesen bekommen.
2.6. Konfiguration und Internationalisierung
Um die Konfiguration auf die eigenen Bedürfnisse anzupassen, empfiehlt es sich, ein zusätzliches Script zu laden, welches die Änderungen an der Standardkonfiguration vornimmt (z.B. ändern der Sprache). Dieses Skript sollte direkt nach agn.push.bell.config.js geladen werden. Das Script führt die Properties aus der nachfolgenden Tabelle auf, die geändert werden sollen und weißt ihnen die entsprechenden Werte zu wie z.B.:
Die Konfiguration findet sich im Namespace „AGN.push.bell.config“. Die Werte lassen sich nur anpassen, bevor der Code für die Integration von Glocke und Overlay ausgeführt wird.
Die Konfigurationsmöglichkeiten sind:
| Key | Kunden-spezifische Einstellung erforderlich | Bedeutung | Beispiel |
|---|---|---|---|
| AGN.push.config.company_id | ja | Ihre ID | AGN.push.config.company_id = 123456 |
| AGN.push.config.push_api_base_url | Nur bei EMM-Inhouse-Installation | URL für Anmeldung am EMM | |
| AGN.push.config.disable_vapid | nein | Verwendung von VAPID-Keys deaktivieren | Nicht ändern |
| AGN.push.config.w3c.serviceworker_script_path | ja | Pfad zur ServiceWorker-Datei | AGN.push.config.w3c.service worker_script_path = '/js' |
| AGN.push.config.w3c.serviceworker_scope | ja | Gültigkeitsbereich des ServiceWorkers | AGN.push.config.w3c.service worker_scope = '/js/' |
| AGN.push.config.safari.website_push_id | ja | Eindeutige Website-ID, welche bei Apple registriert sein muß | AGN.push.config.safari.website_ push_id = 'web.de.agnitas.emm.cid.123456 |
| AGN.push.config.safari.webservice_url | Nur bei EMM-Inhouse-Installation | URL für Anmeldung am EMM | |
| AGN.push.config.bell.push_list_ids | ja | IDs von Push-Listen für den An-/Abmeldung über das Glockensymbol | AGN.push.config.bell.push_list_ ids = [1,2,5] |
| AGN.push.config.bell.language | ja nach Bedarf | Sprache der Texte | AGN.push.config.bell.language = 'de' |
| AGN.push.config.bell.files.bellSubscribed | ja | Pfad zum Glockensymbol, wenn Besucher zu Push angemeldet ist | AGN.push.config.bell.files.bellSubscribed = 'bell-subscribed.png' |
| AGN.push.config.bell.files.bellUnsub scribed |
ja | Pfad zum Glockensymbol, wenn Besucher nicht zu Push angemeldet ist | AGN.push.config.bell.files.bell Unsubscribed = 'bell-unsubscribed.png' |
| AGN.push.config.bell.translation. {language}.subscription.query.title |
nein | Titel für Overlay bei Anmeldung | |
| AGN.push.config.bell.translation. {language}.subscription.query.question |
nein | Bestätigungsfrage für Overlay bei Anmeldung | |
| AGN.push.config.bell.translation. {language}.subscription.query.yes |
nein | Beschriftung für Button zur Bestätigung der Anmeldung für Overlay bei Anmeldung | |
| AGN.push.config.bell.translation. {language}.subscription.query.no |
nein | Beschriftung für Button zur Ablehnung der Anmeldung für Overlay bei Anmeldung | |
| AGN.push.config.bell.translation. {language}.unsubscription.query.title |
nein | Titel für Overlay bei Abmeldung | |
| AGN.push.config.bell.translation. {language}.unsubscription.query.question |
nein | Bestätigungsfrage für Overlay bei Abmeldung | |
| AGN.push.config.bell.translation. {language}.unsubscription.query.yes |
nein | Beschriftung für Button zur Bestätigung der Abmeldung für Overlay bei Abmeldung | |
| AGN.push.config.bell.translation. {language}.unsubscription.query.no |
nein | Beschriftung für Button zur Ablehnung der Abmeldung für Overlay bei Abmeldung | |
| AGN.push.config.bell.translation. {language}.bell.subscribe |
nein | Beschriftung für Glocke zur Anmeldung zu Push (wenn Besucher nicht angemeldet) |
Angepasst werden müssen alle Einstellungen, bei denen eine kundenspezifische Einstellung erforderlich ist. Einstellungen, die nur bei EMM-Inhouse-Installationen angepasst werden müssen, sollen (außer bei EMM-Inhouse-Installationen) nicht geändert werden. Der Rest kann bei Bedarf verändert werden.
Für EMM-Inhouse-Installationen:
Eine weitere Anpassung ist nur für EMM-Inhouse-Installationen in der Datei manifest.json erforderlich. Dort muss unter „gcm_sender_id“ eine bei Google registrierte Sender-ID eingetragen werden.
Als Sprachen sind „de“ und „en“ vordefiniert, es können aber, wenn das Schema der Keys verwendet wird, weitere Sprachen definiert werden.
Es empfiehlt sich, die Default-Konfiguration über die Datei AGN.webpush.bell.config.js zu laden und die kundenindividuellen Einstellungen in einer eigenen Datei danach zu laden:
<script type="text/javascript" src="AGN.webpush.bell.config.js" />
<script type="text/javascript" src="custom-bell-config.js" />
Dies verringert den Aufwand bei einem Update der JavaScript-Dateien.
2.7. Apple Safari
Apple Safari wird unterstützt, erfordert jedoch zusätzliche Schritte und ist mit kleinen Einschränkungen verbunden.
Als erstes werden Icons im PNG-Format in den Größen
16 x 16 Bildpunkte
32 x 32 Bildpunkte
64 x 64 Bildpunkte
128 x 128 Bildpunkte
256 x 256 Bildpunkte
benötigt.
Diese werden Safari in Form signierter ZIP-Dateien bereitgestellt.
! Die Art, wie Push Nachrichten bei Safari implementiert sind erlaubt es nicht, Icons für unterschiedliche Nachrichten zu definieren. Die Icons, welche für Safari hinterlegt sind, werden verwendet, solange Safari für Push angemeldet ist. Änderungen haben, während einer aktiven Anmeldung, keine Auswirkungen.
2.8. Testen der Integration
Stellen Sie beim Testen der Push-Nachrichten sicher, dass
- Benachrichtigungen (Notifications) in Ihrem Browser freigeschaltet sind
- Ihr Browser nicht in einem Privat- oder Gast-Modus läuft
- Sie nicht den Vollbild-Modus des Browsers verwenden
weil in diesen Fällen Push-Nachrichten nicht angezeigt werden.
2.9. Gründe für fehlerhafte Browserdarstellung
Es gibt eine ganze Reihe von Gründen, warum Push-Nachrichten vom Browser nicht angezeigt werden:
- Firefox zeigt eine Push-Nachricht nur einige Sekunden lang an, danach wird sie automatisch geschlossen.
- Wird ein Browser geöffnet und liegen mehrere Push-Nachrichten (von unterschiedlichen Versendern) vor, so werden diese z.T. übereinander dargestellt, d.h. die unteren sind verdeckt.
- Wird der Browser im Vollbild-Modus betrieben, so verdeckt er dadurch das Push-Fenster.
- Wird der Browser im Privacy-Modus betrieben, so zeigt er generell keine Push-Nachrichten an.
- Wird die Anzeige von Push-Nachrichten in den Browser-Einstellungen deaktiviert, werden keine Push-Nachrichten mehr angezeigt.
- Ist die Push-Anmeldung nicht aktiv, so werden keine Push-Nachrichten an den Browser zugestellt (Achtung: ein vorhandener Service Worker ist nicht gleichbedeutend mit einer aktiven Anmeldung).
- Bei Samsung Internet ist der Empfang von Push-Nachrichten standardmäßig deaktiviert.
- Veraltete Browser wie der Internet Explorer oder Browser mit geringer Verbreitung stellen möglicherweise die benötigte Funktionalität zum Empfang von Push-Nachrichten nicht bereit.
Für weitere Auskünfte kontaktieren Sie bitte den AGNITAS-Support.