Zum Hauptinhalt springen




Mit Benachrichtigungsauslösern können Sie lokale Benachrichtigungen planen, die keine Netzwerkverbindung erfordern, was sie ideal für Anwendungsfälle wie Kalender-Apps macht.


Aktualisiert

El desarrollo de Notification Triggers API, parte de Google
Fähigkeiten Projekt, liegt derzeit in der Warteschleife. Dieser Beitrag wird im Laufe der Implementierung aktualisiert.

Was sind Benachrichtigungsauslöser?

Los desarrolladores Netz pueden mostrar notificaciones mediante el
API für Webbenachrichtigungen. Diese Funktion wird oft verwendet mit API-Push para informar al Nutzername de información urgente, como noticias de última hora o mensajes recibidos. Las notificaciones se muestran ejecutando JavaScript en el dispositivo del usuario.

Das Problem mit der Push-API ist, dass es nicht zuverlässig ist, Benachrichtigungen auszulösen, die muss wird angezeigt, wenn eine bestimmte Bedingung erfüllt ist, z. B. Zeit oder Ort. Ein Beispiel für zeitbasierte Bedingung ist eine Kalenderbenachrichtigung, die Sie um 14 Uhr an ein wichtiges Meeting mit Ihrem Chef erinnert. Ein Beispiel für standortbezogene Bedingung es una notificación que le recuerda que debe comprar leche cuando ingresa a las inmediaciones de su supermercado. La conectividad de red o las funciones de conservación de la batería, como el modo dormido, pueden retrasar la entrega de Mitteilungen.

Benachrichtigungsauslöser lösen dieses Problem, indem Sie Benachrichtigungen mit ihrer Aktivierungsbedingung im Voraus planen, sodass das Betriebssystem die Benachrichtigung zum richtigen Zeitpunkt liefert, auch wenn keine Netzwerkverbindung besteht oder sich das Gerät im Energiesparmodus befindet.

Derzeit unterstützt Chrome nur zeitbasierte Trigger. Je nach Bedarf der Entwickler können in Zukunft weitere Trigger, wie z. B. standortbasierte Trigger, hinzugefügt werden.

Anwendungsfälle

Kalenderanwendungen können zeitbasierte Benachrichtigungsauslöser verwenden, um den Benutzer an bevorstehende Besprechungen zu erinnern. Das Standardbenachrichtigungsschema für eine Kalender-App könnte darin bestehen, eine erste Benachrichtigung eine Stunde vor einer Besprechung und dann eine weitere dringendere Benachrichtigung fünf Minuten zuvor anzuzeigen.

Una cadena de televisión puede recordar a los usuarios que su programa de televisión favorito está a punto de comenzar o que está a punto de comenzar una transmisión en vivo de una Konferenz.

Los sitios de Umwandlung de zona horaria pueden utilizar activadores de notificación basados ​​en el tiempo para permitir a sus usuarios programar alarmas para conferencias telefónicas o videollamadas.

Tatsächlicher Zustand

Er ging vorbei Bedingung
1. Erstellen Sie einen Erklärer Fertigstellen
2. Erstellen Sie eine erste Entwurfsspezifikation Nicht angefangen
3. Sammeln Sie Feedback und wiederholen Sie das Design In Bearbeitung
4. Herkunftsnachweis Fertigstellen
5. Starten Sie Nicht angefangen

Ein Ursprungsnachweis für das Feature, das Entwicklern die Möglichkeit gab, die vorgeschlagene API zu testen, lief von Chrome 80 bis 83 und endete am 29. Juli 2020. Leider haben wir nicht viele Registrierungen erhalten und das Feedback war nicht stark. Vorerst haben wir uns entschieden, die API bis auf Weiteres zu pausieren und den Herkunftsnachweis nicht zu verlängern. Die Funktion wird weiterhin hinter der experimentellen Webplattform-Funktionsmarke verfügbar sein, damit Entwickler mit der API experimentieren können. Angesichts zukünftiger Entwicklerinteressen oder neuer Anwendungsfälle werden wir die API überdenken und die Bemühungen um ihre Standardisierung fortsetzen.

So verwenden Sie Benachrichtigungsauslöser

Aktivierung über chrome: // flags

Um lokal mit der Claims Triggers API ohne Quelltesttoken zu experimentieren, aktivieren Sie die
#enable-experimentelle-Web-Plattform-Funktionen Flagge an chrome://flags.

Funktionserkennung

Puede averiguar si el Browser es compatible con los activadores de notificación comprobando la existencia del
showTrigger Eigentum:

wenn ("showTrigger" im Notification.prototype) {
}

Planen Sie eine Benachrichtigung

Das Planen einer Benachrichtigung ähnelt dem Anzeigen einer regulären Push-Benachrichtigung, außer dass Sie a . bestehen müssen showTrigger Eigenschaftszustand mit a TimestampTrigger Objekt als Anspruchswert Optionen Objekt.

const createScheduledNotification = asynchron (Etikett, Titel, timestamp) => {
const Anmeldung = erwarten Navigator.serviceWorker.getRegistration();
Anmeldung.showNotification(Titel, {
Etikett: Etikett,
Körper: "This notification was scheduled 30 seconds ago",
showTrigger: new TimestampTrigger(timestamp + 30 * 1000)
});
};

Auf dem Desktop wird die Benachrichtigung nur ausgelöst, wenn Chrome ausgeführt wird. Auf Android feuern sie unabhängig voneinander.

Stornieren einer geplanten Benachrichtigung

Um geplante Benachrichtigungen abzubrechen, fordern Sie zunächst über . eine Liste aller Benachrichtigungen an, die einem bestimmten Tag entsprechen ServiceWorkerRegistration.getNotifications (). Bitte beachten Sie, dass Sie die
einschließenAusgelöst Prüfen Sie, ob geplante Benachrichtigungen aufgelistet werden:

const cancelScheduledNotification = asynchron (Etikett) => {
const Anmeldung = erwarten Navigator.serviceWorker.getRegistration();
const notifications = erwarten Anmeldung.getNotifications({
Etikett: Etikett,
einschließenAusgelöst: wahr,
});
notifications.forEach((notification) => notification.close());
};

Depuration

Du kannst den ... benutzen Chrome DevTools-Benachrichtigungsfeld um Benachrichtigungen zu debuggen. Um mit dem Debuggen zu beginnen, drücken Sie Ereignisaufzeichnung starten Rekord-8885793 oder
Steuerung+mich (Befehl+mich auf dem Mac). Chrome DevTools protokolliert alle Benachrichtigungsereignisse, einschließlich geplanter, angezeigter und geschlossener Benachrichtigungen, drei Tage lang, selbst wenn DevTools geschlossen ist.

devtools-geplant-4433090

Eine geplante Benachrichtigung.

devtools-displayed-6666399

Eine Benachrichtigung wird angezeigt.

Manifestation

Sie können die Benachrichtigungsauslöser in Aktion im Manifestation, que le permite programar notificaciones, enumerar notificaciones programadas y cancelarlas. El Quellcode está disponible en
Fehler.

Demo-9370521

Benachrichtigungsauslöser Manifestation.

Sicherheit und Berechtigungen

Das Chrome-Team hat die Notification Triggers API nach den in using definierten Grundprinzipien entworfen und implementiert Steuern Sie den Zugriff auf leistungsstarke Funktionen der Webplattform, einschließlich Benutzerführung, Transparenz und Ergonomie. Da diese API Servicemitarbeiter erfordert, ist auch ein sicherer Kontext erforderlich. Die Verwendung der API erfordert dieselbe Berechtigung wie normale Push-Benachrichtigungen.

Nutzerkontrolle

Diese API ist nur im Kontext von a . verfügbar ServiceWorkerRegistration. Dies impliziert, dass alle erforderlichen Daten im selben Kontext gespeichert und automatisch entfernt werden, wenn der Worker aus dem Dienst entfernt wird oder wenn der Benutzer alle Daten von der Site für die Quelle entfernt. Das Blockieren von Cookies verhindert auch, dass Servicemitarbeiter in Chrome installiert werden und somit diese API verwendet wird. Der Benutzer kann Benachrichtigungen für die Site jederzeit in den Site-Einstellungen deaktivieren.

Transparenz

Im Gegensatz zur Push-API ist diese API nicht netzwerkabhängig, was bedeutet, dass geplante Benachrichtigungen im Voraus alle erforderlichen Daten benötigen, einschließlich der Bildressourcen, auf die die Abzeichen,
Symbol y Bild atributos. Esto significa que mostrar una notificación programada no es observable por el desarrollador y no implica despertar al trabajador del servicio hasta que el usuario interactúe con la notificación. En consecuencia, actualmente no existe una forma conocida de que el desarrollador pueda obtener información sobre el usuario a través de enfoques potencialmente invasores de la privacidad como la búsqueda de geolocalización de direcciones IP. Este diseño también permite que la función aproveche opcionalmente los mecanismos de Programmierung proporcionados por el sistema operativo, como el de Android.
AlarmManager, wodurch die Akkulaufzeit gespart wird.

Feedback

Das Chrome-Team möchte Ihre Erfahrungen mit Benachrichtigungsauslösern erfahren.

Erzählen Sie uns etwas über das API-Design

Gibt es etwas in der API, das nicht wie erwartet funktioniert? Oder vermissen Sie Methoden oder Eigenschaften, die Sie zur Umsetzung Ihrer Idee benötigen? Haben Sie eine Frage oder einen Kommentar zum Sicherheitsmodell? Melden Sie ein Spezifikationsproblem auf der Benachrichtigung löst GitHub-Repository ausoder fügen Sie Ihre Gedanken zu einem bestehenden Problem hinzu.

Problem mit der Implementierung?

Haben Sie einen Fehler bei der Chrome-Implementierung gefunden? Oder unterscheidet sich die Implementierung von der Spezifikation? Einen Fehler einreichen new.crbug.com. Achten Sie darauf, so viele Details wie möglich anzugeben, einfache Anweisungen zum Reproduzieren und Konfigurieren von Komponenten Benutzeroberfläche> Benachrichtigungen. Glitch eignet sich hervorragend zum schnellen und einfachen Teilen von Fehlerwiederholungen.

Planen Sie die Verwendung der API?

¿Planea usar activadores de notificación en su sitio? Su apoyo público nos ayuda a priorizar funciones y muestra a otros proveedores de Browser lo importante que es darles soporte. Enviar un Tweet zu
@Cromodev mit #Benachrichtigungstrigger und lassen Sie uns wissen, wo und wie Sie es verwenden.

Nützliche Links

Vielen Dank

Benachrichtigungsauslöser wurde implementiert von Richard Knoll
und der Erklärer geschrieben von Peter beverloo, con contribuciones de Richard. Las siguientes Personen han revisado el artículo:
Joe Medley, Pete LePagesowie Richard und Peter. Heldenbild zum
Lukas Blazek auf Unsplash.