React Academy · leksjon

Notifications API og håndtering av tillatelser

Be om varslingstillatelse på riktig tidspunkt, og send nettleservarsler fra React.

Leksjon 3 av 413 trinn

Notifications API og håndtering av tillatelser er en gratis leksjon i React Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i React Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i React Academy inneholder totalt 4 leksjoner.

Egenskapen Notification.permission

Notification.permission er en statisk streng som gjenspeiler gjeldende tillatelsestilstand. Den kan være "granted" (brukeren har tillatt), "denied" (brukeren har blokkert) eller "default" (det er aldri blitt spurt). Sjekk denne egenskapen før De prøver å vise varsler, slik at unødvendige feil unngås.

Be om tillatelse

Notification.requestPermission() returnerer et Promise som løses med den nye tillatelsesstrengen. Kall den bare som svar på en tydelig brukerhandling, ikke ved innlasting av siden. Nettlesere ignorerer eller undertrykker tillatelsesforespørsler som vises umiddelbart ved innlasting, og brukerne opplever dem som plagsomme når de vises uten kontekst.

Beste praksis: Be om tillatelse etter en brukerhandling

Det mest effektive mønsteret er å vise en melding i appen som forklarer fordelen, og deretter la brukeren klikke på «Aktiver varsler» før De kaller requestPermission(). Dette gir kontekst, øker andelen som godtar, og hindrer at nettleseren oppfatter nettstedet som søppelpost. Be aldri om tillatelse ved innlasting av siden.

Opprette et varsel

new Notification(title, options) oppretter og viser et systemvarsel. Det første argumentet er tittelstrengen. options-objektet er det andre argumentet og støtter egenskaper som body (undertekst), icon (URL til bilde) og tag for å unngå duplikater. Dette fungerer bare hvis tillatelsen er "granted".

Alternativer for varsler

Viktige alternativer for varsler omfatter: body for beskrivende tekst under tittelen, icon for et lite bilde, badge for det lille monokrome ikonet som vises i operativsystemets varslingsområde, image for et stort innebygd bilde, tag for å erstatte et tidligere varsel med samme tag, og requireInteraction: true for å beholde varslet til brukeren foretar en handling.

Hendelser for varsler

Notification-instansen utløser flere hendelser: onclick utløses når brukeren klikker på varslet (bruk den til å fokusere vinduet og navigere), onclose utløses når varslet lukkes, og onerror utløses hvis det oppstår et problem med å opprette det. Knytt behandlere til den returnerte instansen etter at De har kalt new Notification().

Lukke varsler programmatisk

Lagre den returnerte Notification-instansen i en variabel, og kall notification.close() for å lukke varslet programmatisk. Dette er nyttig for tidskritiske varsler som blir irrelevante etter en stund. Kombiner med setTimeout for å lukke varslet automatisk etter noen sekunder.

HTTPS-krav for varsler

Notifications API krever en sikker kontekst. På HTTP-sider er typeof Notification === 'undefined', eller API-et er fullstendig deaktivert, avhengig av nettleseren. Dette er et sikkerhetstiltak for å hindre ondsinnede nettsteder i å oversvømme brukerne med falske systemmeldinger. Sjekk alltid om API-et er tilgjengelig før De bruker det.

Bygge en useNotifications-hook

En useNotifications-hook kan eksponere to metoder: requestPermission() og showNotification(title, options). Den holder internt oversikt over gjeldende tillatelsestilstand og oppdaterer den etter en forespørsel. Komponentene kaller showNotification uten å måtte bekymre seg for tillatelsessjekker, siden hooken håndterer dette internt.

Kombinere med Visibility API

Page Visibility API eksponerer document.hidden og hendelsen visibilitychange. Varsler gir mest mening når brukeren ikke allerede ser på fanen. Sjekk document.hidden === true før De viser et varsel, slik at De unngår overflødige varsler når siden allerede er i forgrunnen.

Service workers og push-varsler

Notifications API-et som vises her, brukes til varsler som utløses lokalt fra selve siden. For push-varsler som kommer selv når siden er lukket, trenger De Push API kombinert med en service worker. Service workeren mottar push-hendelsen og kaller self.registration.showNotification() i bakgrunnen.

Verdier for Notification.permission

Hvilken av følgende er IKKE en gyldig verdi for Notification.permission?

Oppsummering av leksjonen: Notifications API

Notification.permission kan være granted, denied eller default. Be alltid om tillatelse etter en brukerhandling, ikke ved innlasting av siden. Bruk new Notification(title, options) for å opprette varsler, og håndter onclick for å fokusere vinduet. Kombiner med Visibility API for å vise varsler bare når fanen er skjult.

Gratis å komme i gang

Lær deg React med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
88
Leksjoner
324

Ofte stilte spørsmål

Er leksjonen «Notifications API og håndtering av tillatelser» gratis?

Ja – hele teksten i «Notifications API og håndtering av tillatelser» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av React Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i React Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Notifications API og håndtering av tillatelser»?

Be om varslingstillatelse på riktig tidspunkt, og send nettleservarsler fra React. Du øver på React Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med React Academy?

Ingen tidligere erfaring er nødvendig. React Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Notifications API og håndtering av tillatelser»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne React Academy-leksjonen?

Ja. Alle React Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Clipboard API: kopiere og lime inn i React
  2. Geolocation API i React-komponenter
  3. Notifications API og håndtering av tillatelser
  4. IntersectionObserver for rulleutløste effekter
← Tilbake til React Academy