Overslaan naar hoofdinhoud

DesktopNotification

Openen in ChatGPT
25.00 Experimenteel
Java API

De DesktopNotification component toont native desktop notificaties buiten het browservenster. Het kan worden gebruikt om gebruikers te waarschuwen voor realtime gebeurtenissen zoals nieuwe berichten, systeemwaarschuwingen of statuswijzigingen terwijl ze uw app gebruiken.

Setup en vereisten

Experimentele functie
Deze functie is experimenteel en kan in een toekomstige release veranderen of verwijderd worden.

Om deze functie te gebruiken, voeg de volgende afhankelijkheid toe aan uw pom.xml:

<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-desktop-notification</artifactId>
</dependency>

Voordat u de DesktopNotification component integreert, moet u ervoor zorgen dat:

  • Uw app draait in een veilige context (HTTPS).
  • De browser niet in incognito- of privé-browsingmodus is.
  • De gebruiker interactie met de app heeft gehad (bijv. op een knop heeft geklikt of een toets heeft ingedrukt), aangezien notificaties een gebruikersgebaar vereisen om zichtbaar te zijn.
  • De gebruiker toestemming heeft gegeven voor notificaties (dit zal automatisch worden aangevraagd indien nodig).

Basisgebruik

Er zijn meerdere manieren om een notificatie te maken en weer te geven. In de meeste scenario's is de eenvoudigste benadering het aanroepen van een van de statische show methoden die de volledige notificatielevenscyclus kapselen.

Voorbeeld: Een basisnotificatie weergeven

// Basisnotificatie met titel en bericht
DesktopNotification.show("Update Beschikbaar", "Uw download is voltooid!");

Deze één-liner maakt een notificatie met een titel en een bericht, en probeert deze vervolgens weer te geven.

De notificatie aanpassen

Er zijn verschillende opties voor het aanpassen van de uitstraling en het gevoel 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 het gedefinieerde app-pictogram via het icons protocol. U kunt een aangepast pictogram instellen met de methode setIcon. De component ondersteunt verschillende URL-schema's:

  • context://: Opgelost als een context-URL die naar de resourcefolder van de app wijst; afbeelding is base64-gecodeerd.
  • ws://: Opgelost als een webserver URL, wat een volledig gekwalificeerde URL oplevert.
  • icons://: Opgelost als een iconen-URL.

Voorbeeld:

// Een notificatie maken met een aangepaste pictogram 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 evenementen, en luisteraars kunnen worden bevestigd om gebeurtenissen te behandelen, zoals wanneer een notificatie wordt weergegeven, gesloten, geklikt of een fout ondervindt.

EvenementBeschrijvingWanneer te gebruiken
OpenGeactiveerd wanneer de notificatie wordt weergegeven.Log notificatieweergave, update UI, volg betrokkenheid.
SluitenGeactiveerd wanneer de notificatie wordt gesloten.Maak bronnen schoon, logafmeldingen, voer vervolgacties uit.
FoutGeactiveerd wanneer er een fout optreedt met de notificatie of de gebruiker geen toestemming heeft gegeven.Beheer fouten op een elegante manier, verwittig de gebruiker, pas fallback-methoden toe.
KlikGeactiveerd wanneer de gebruiker op de notificatie klikt.Navigeer naar een specifieke sectie, log interacties, richt de app opnieuw in.
DesktopNotification notification = new DesktopNotification("Waarschuwing", "U heeft een nieuw bericht!")

// Bevestig een evenement luisteraar voor het open-evenement
notification.onOpen(event -> {
System.out.println("Notificatie is geopend door de gebruiker.");
});

// Eveneens luisteren naar het klik-evenement
notification.onClick(event -> {
System.out.println("Notificatie geklikt.");
});
Klikgedrag

Browserbeveiligingsbeleid voorkomt dat het klik-evenement van de notificatie automatisch uw app-venster of tabblad in de focus brengt. Dit gedrag wordt afgedwongen door de browser en kan niet programmatisch worden overschreven. Als uw app vereist dat het venster de focus krijgt, moet u gebruikers instrueren om binnen de app te klikken nadat ze met de notificatie hebben geïnterageerd.

Beveiligings- en compatibiliteitsoverwegingen

Bij het gebruik van de DesktopNotification component, houd de volgende punten in gedachten:

  • Beveiligingscontext: Uw app moet via HTTPS worden aangeboden om ervoor te zorgen dat notificaties door de meeste moderne browsers worden toegestaan.
  • Vereiste gebruikersgebaar: Notificaties worden alleen weergegeven na een door de gebruiker geinitieerd actie. Het simpelweg laden van een pagina zal geen notificatie activeren.
  • Browserbeperkingen: Niet alle browsers behandelen aangepaste pictogrammen of focusgedrag op dezelfde manier. Bijvoorbeeld, aangepaste pictogrammen werken mogelijk niet in Safari, terwijl het evenementgedrag kan variëren in andere browsers.
  • Toestemmingen: Controleer altijd of uw app toestemming voor notificaties van de gebruiker op een elegante manier controleert en aanvraagt.

Beste praktijken voor gebruik

Houd de volgende beste praktijken in gedachten bij het gebruik van de DesktopNotification component in uw app:

  • Informeer uw gebruikers: Laat gebruikers weten waarom notificaties nodig zijn en hoe ze voordeel kunnen hebben bij notificaties.
  • Bied fallbacks 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 niet kunnen worden weergegeven op een elegante manier te beheren.