DesktopNotification
De DesktopNotification component toont native desktop notificaties buiten het browservenster. Het kan worden gebruikt om gebruikers te waarschuwen voor real-time gebeurtenissen zoals nieuwe berichten, systeemwaarschuwingen of statuswijzigingen terwijl ze je app gebruiken.
Setup en vereisten
Om deze functie te gebruiken, voeg je de volgende afhankelijkheid toe aan je pom.xml:
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-desktop-notification</artifactId>
</dependency>
Voordat je de DesktopNotification component integreert, zorg ervoor dat:
- Je app draait in een veilige context (HTTPS).
- De browser zich niet in incognito- of privé browse-modus bevindt.
- De gebruiker interactie heeft gehad met de app (bijv. op een knop heeft geklikt of een toets heeft ingedrukt), aangezien notificaties een gebruikersgebaar vereisen om weergegeven te worden.
- De gebruiker toestemming heeft gegeven voor notificaties (dit zal automatisch worden aangevraagd indien nodig).
Basisgebruik
Er zijn verschillende manieren om een notificatie te creëren en weer te geven. In de meeste scenario's is de eenvoudigste benadering om een van de statische show methodes aan te roepen die de volledige levenscyclus van de notificatie encapsuleert.
Voorbeeld: Een basisnotificatie weergeven
// Basisnotificatie met titel en bericht
DesktopNotification.show("Update Beschikbaar", "Je download is voltooid!");
Deze one-liner creëert een notificatie met een titel en body, en probeert deze weer te geven.
De notificatie aanpassen
Er zijn verschillende opties voor het aanpassen van de look en feel van de weergegeven notificatie, afhankelijk van de behoeften van de app en het doel van de notificatie.
Een aangepaste Icon instellen
Standaard gebruikt de notificatie je gedefinieerde app-icoon via het icons protocol. Je kunt een aangepast icoon instellen met de setIcon methode. De component ondersteunt verschillende URL-schema's:
context://: Opgehelderd als een context-URL die naar de resource-map van de app verwijst; afbeelding is base64-gecodeerd.ws://: Opgehelderd als een webserver-URL, wat een volledig gekwalificeerde URL geeft.icons://: Opgehelderd als een icons-URL.
Voorbeeld:
// Een notificatie creëren met een aangepaste icoon-URL
DesktopNotification notification = new DesktopNotification(
"Herinnering", "Vergadering begint over 10 minuten."
);
notification.setIcon("context://images/custom-icon.png");
notification.open();
Notificatie evenementen
De DesktopNotification ondersteunt verschillende levenscyclus gebeurtenissen, en luisteraars kunnen worden toegevoegd om gebeurtenissen af te handelen, zoals wanneer een notificatie wordt weergegeven, gesloten, geklikt of een fout tegenkomt.
| Evenement | Beschrijving | Wanneer te gebruiken |
|---|---|---|
| Open | Gevoed wanneer de notificatie wordt weergegeven. | Log notificatieweergave, update UI, volg engagement. |
| Sluiten | Gevoed wanneer de notificatie wordt gesloten. | Ruim resources op, log afwijzingen, voer vervolgacties uit. |
| Fout | Gevoed wanneer er een fout optreedt met de notificatie of de gebruiker geen toestemming heeft gegeven. | Behandel fouten elegant, informeer de gebruiker, pas fallback aan. |
| Klik | Gevoed wanneer de gebruiker op de notificatie klikt. | Navigeer naar een specifieke sectie, log interacties, herfocus de app. |
DesktopNotification notification = new DesktopNotification("Alert", "Je hebt een nieuw bericht!")
// Voeg een evenementluisteraar toe voor het open evenement
notification.onOpen(event -> {
System.out.println("Notificatie is door de gebruiker geopend.");
});
// Luister ook naar het klik evenement
notification.onClick(event -> {
System.out.println("Notificatie geklikt.");
});
Browserbeveiligingsbeleid voorkomt dat de klikgebeurtenis van de notificatie automatisch je app-venster of tabblad in de focus brengt. Dit gedrag wordt afgedwongen door de browser en kan niet programmatisch worden omzeild. Als je app vereist dat het venster gefocust wordt, moet je gebruikers instrueren om binnen de app te klikken na interactie met de notificatie.
Beveiliging en compatibiliteit overwegingen
Bij het gebruik van de DesktopNotification component, houd je de volgende punten in gedachten:
- Beveiligingscontext: Je app moet via HTTPS worden aangeboden om ervoor te zorgen dat notificaties zijn toegestaan door de meeste moderne browsers.
- Vereiste gebruikersgebaar: Notificaties worden alleen weergegeven na een door de gebruiker geactiveerde actie. Het simpelweg laden van een pagina activeert geen notificatie.
- Browserbeperkingen: Niet alle browsers behandelen aangepaste iconen of focusgedrag op dezelfde manier. Bijvoorbeeld, aangepaste iconen werken mogelijk niet in Safari, terwijl het gedrag van evenementen kan variëren in andere browsers.
- Toestemmingen: Controleer altijd of je app op een elegante manier om notificatietoestemming van de gebruiker vraagt.
Beste gebruikspraktijken
Houd de volgende beste praktijken in gedachten bij het gebruik van de DesktopNotification component in je app:
- Informeer je gebruikers: Laat gebruikers weten waarom notificaties nodig zijn en hoe ze hiervan kunnen profiteren.
- Bied fallback opties aan: Aangezien sommige browsers notificaties kunnen beperken, overweeg alternatieve manieren om gebruikers te waarschuwen (bijv. in-app berichten).
- Foutafhandeling: Registreer altijd een foutluisteraar om scenario's waar notificaties falen op een elegante manier te beheren.