Met de App Badging API kunnen geïnstalleerde web-apps een applicatiebrede badge op het app-pictogram plaatsen.
Wat is de App Badging API?
Met de App Badging API kunnen geïnstalleerde webapps een applicatiebrede badge instellen. Deze badge wordt weergegeven op een besturingssysteemspecifieke plaats die aan de applicatie is gekoppeld (zoals het schap of het startscherm).
Met badges kunt u de gebruiker op een subtiele manier laten weten dat er nieuwe activiteit is die mogelijk zijn of haar aandacht vereist, of u kunt een kleine hoeveelheid informatie aangeven, zoals het aantal ongelezen berichten.
Badges zijn over het algemeen gebruiksvriendelijker dan meldingen en kunnen veel vaker worden bijgewerkt, omdat ze de gebruiker niet storen. En omdat ze de gebruiker niet storen, is er geen toestemming van de gebruiker nodig.
Mogelijke toepassingsgevallen
Voorbeelden van apps die deze API kunnen gebruiken zijn:
- Chat, e-mail en sociale apps, om aan te geven dat er nieuwe berichten zijn, of om het aantal ongelezen berichten te tonen.
- Productiviteitsapps, om aan te geven dat een langlopende achtergrondtaak (zoals het renderen van een afbeelding of video) is voltooid.
- Spellen, om aan te geven dat een speler actie moet ondernemen (bijvoorbeeld bij schaken, wanneer de speler aan de beurt is).
Steun
De App Badging API werkt op Windows en macOS, in Chrome 81 en Edge 81 of hoger. Ondersteuning voor ChromeOS is in ontwikkeling en zal in een toekomstige release beschikbaar zijn. Op Android wordt de Badging API niet ondersteund. In plaats daarvan toont Android automatisch een badge op het app-pictogram van de geïnstalleerde webapp wanneer er een ongelezen melding is, net als bij Android-apps.
Probeer het eens
- Open de App Badging API-demo .
- Wanneer u daarom wordt gevraagd, klikt u op Installeren om de app te installeren. U kunt ook het Chrome-menu gebruiken om de app te installeren.
- Open het als een geïnstalleerde PWA. Let op: het moet als een geïnstalleerde PWA draaien (in uw taakbalk of dock).
- Klik op de knop Instellen of Wissen om de badge in het app-pictogram in te stellen of te wissen. U kunt ook een getal opgeven voor de badgewaarde .
Hoe de App Badging API te gebruiken
Om de App Badging API te kunnen gebruiken, moet uw webapp voldoen aan de installeerbaarheidscriteria van Chrome en moeten gebruikers de app toevoegen aan hun startscherm.
De Badge API bestaat uit twee methoden in navigator
:
-
setAppBadge(
number
)
: Stelt de badge van de app in. Als er een waarde is opgegeven, wordt de badge ingesteld op de opgegeven waarde. Anders wordt een effen witte stip weergegeven (of een andere vlag die geschikt is voor het platform). Het instellen vannumber
op0
is hetzelfde als het aanroepen vanclearAppBadge()
. -
clearAppBadge()
: Verwijdert de badge van de app.
Beide geven loze beloften die u kunt gebruiken voor foutbehandeling.
De badge kan worden ingesteld vanaf de huidige pagina of vanaf de geregistreerde service worker. Om de badge in te stellen of te wissen (op de voorgrondpagina of vanaf de service worker), voert u het volgende uit:
// Set the badge
const unreadCount = 24;
navigator.setAppBadge(unreadCount).catch((error) => {
//Do something with the error.
});
// Clear the badge
navigator.clearAppBadge().catch((error) => {
// Do something with the error.
});
In sommige gevallen staat het besturingssysteem de exacte weergave van de badge mogelijk niet toe. In dergelijke gevallen probeert de browser de beste weergave voor dat apparaat te bieden. Omdat de Badging API bijvoorbeeld niet wordt ondersteund op Android, toont Android alleen een punt in plaats van een numerieke waarde.
Ga er niet vanuit dat de user agent de badge op een bepaalde manier weergeeft. Sommige user agents nemen een getal zoals "4000" en herschrijven dit naar "99+". Als u de badge zelf overbelast (bijvoorbeeld door deze in te stellen op "99"), verschijnt de "+" niet. Ongeacht het werkelijke getal, roept u gewoon setAppBadge(unreadCount)
aan en laat u de user agent de badge op de juiste manier weergeven.
Hoewel de App Badging API in Chrome een geïnstalleerde app vereist, moet u de Badging API niet afhankelijk maken van de installatiestatus. Roep de API gewoon aan wanneer deze bestaat, aangezien andere browsers de badge mogelijk op andere plaatsen weergeven. Als het werkt, werkt het. Zo niet, dan werkt het gewoon niet.
Het instellen en wissen van de badge op de achtergrond door een servicemedewerker
Je kunt de app-badge ook op de achtergrond instellen met behulp van de service worker. Dit kan via periodieke achtergrondsynchronisatie, de Push API of een combinatie van beide.
Periodieke achtergrondsynchronisatie
Met periodieke achtergrondsynchronisatie kan een servicemedewerker periodiek de server raadplegen, wat kan worden gebruikt om een bijgewerkte status op te vragen, en navigator.setAppBadge()
aanroepen.
De frequentie waarmee de synchronisatie wordt uitgevoerd, is echter niet volledig betrouwbaar en wordt bepaald door de browser.
Web Push API
Met de Push API kunnen servers berichten sturen naar service workers, die JavaScript-code kunnen uitvoeren, zelfs wanneer er geen pagina op de voorgrond actief is. Zo kan een serverpush de badge bijwerken door navigator.setAppBadge()
aan te roepen.
De meeste browsers, waaronder Chrome, vereisen echter dat er een melding wordt weergegeven wanneer er een pushbericht wordt ontvangen. Dit is prima voor sommige toepassingen (bijvoorbeeld het tonen van een melding bij het bijwerken van de badge), maar maakt het onmogelijk om de badge subtiel bij te werken zonder een melding weer te geven.
Daarnaast moeten gebruikers toestemming geven voor meldingen op uw site om pushberichten te kunnen ontvangen.
Een combinatie van beide
Hoewel niet perfect, biedt de combinatie van Push API en periodieke achtergrondsynchronisatie een goede oplossing. Informatie met hoge prioriteit wordt geleverd via de Push API, waarbij een melding wordt weergegeven en de badge wordt bijgewerkt. Informatie met lagere prioriteit wordt geleverd door de badge bij te werken, hetzij wanneer de pagina open is, hetzij via periodieke achtergrondsynchronisatie.
Feedback
Het Chrome-team wil graag uw ervaringen met de App Badging API horen.
Vertel ons over het API-ontwerp
Werkt er iets in de API niet zoals verwacht? Of ontbreken er methoden of eigenschappen die u nodig hebt om uw idee te implementeren? Heeft u een vraag of opmerking over het beveiligingsmodel?
- Dien een spec-probleem in op de Badging API GitHub-repository of geef uw mening over een bestaand probleem.
Meld een probleem met de implementatie
Heb je een bug gevonden in de implementatie van Chrome? Of wijkt de implementatie af van de specificatie?
- Meld een bug op https://new.crbug.com . Zorg ervoor dat je zoveel mogelijk details en eenvoudige instructies voor reproductie geeft en stel Componenten in op
UI>Browser>WebAppInstalls
. Glitch is ideaal voor het delen van snelle en eenvoudige reproducties.
Toon ondersteuning voor de API
Bent u van plan de App Badging API op uw site te gebruiken? Uw publieke steun helpt het Chrome-team om functies te prioriteren en laat andere browserleveranciers zien hoe belangrijk het is om deze te ondersteunen.
- Stuur een tweet naar @ChromiumDev met de hashtag
#BadgingAPI
en laat ons weten waar en hoe je deze gebruikt.
Nuttige links
- Publieke uitleg
- Spec-ontwerp
- Demo van de Badging API | Bron van de Badging API-demo
- Tracking-bug
- ChromeStatus.com-vermelding
- Blink-component:
UI>Browser>WebAppInstalls
Heldenfoto door Prateek Katyal op Unsplash