Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Installer app-knapp

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-installer-knapp> – Installer app-knapp / Install app button

    Om komponenten

    Formål

    Tilbyr brukeren å installere appen som en frittstående PWA, uten at hver app selv må implementere beforeinstallprompt-håndtering og iOS-spesifikk veiledning fra bunnen av.

    Egner seg for

    • Innstillinger-/profilsider i installerbare PWA-er (manifest.webmanifest + service worker) som turer/ og okonomi/.
    • Steder der en tydelig, men ikke påtrengende, installasjonsmulighet gir mening (ikke som en forstyrrende modal ved første besøk).

    Egner seg ikke for

    • Sider uten et gyldig manifest.webmanifest/service worker - da fyrer beforeinstallprompt aldri, og komponenten viser ingenting (ikke en feil i seg selv, men gir ingen verdi).
    • Påtrengende installasjonskampanjer rett ved sidelasting - plasser komponenten et sted brukeren aktivt oppsøker, som en innstillingsside.

    Bruk

    <script type="module" src="/designsystem/komponenter/handling/installer-knapp/installer-knapp.js"></script>
    
    <lm-installer-knapp></lm-installer-knapp>

    Prøv selv

    Rediger koden under - resultatet oppdateres live.

    Slots

    Slot Beskrivelse
    knapp-tekstKnappeteksten som vises når beforeinstallprompt har fyrt (Chrome/Edge/Android). Standard: «Installer app».
    ios-tekstVeiledningsteksten som vises i stedet for knappen på iOS Safari, som aldri fyrer beforeinstallprompt. Standard forklarer Del -> Legg til på Hjem-skjerm.

    Tilgjengelighet

    Rendrer en vanlig <button> (tastaturoperabel, fokuserbar) som er skjult (hidden) helt til beforeinstallprompt faktisk fyrer - unngår et ubrukelig, deaktivert element i tab-rekkefølgen på nettlesere/plattformer uten støtte. iOS-veiledningen er vanlig avsnittstekst.

    • Bruker en vanlig, native <button> - ingen egen ARIA-rolle trengs.
    • Knappen er hidden (fjernet fra tab-rekkefølgen) helt til beforeinstallprompt faktisk fyrer.
    • Komponenten viser aldri noe hvis appen allerede kjører i frittstående/installert modus.

    Detaljer

    • Lagrer det utsatte beforeinstallprompt-eventet og kaller event.prompt() ved klikk - eventet kan kun brukes én gang, så knappen skjules umiddelbart etter.
    • iOS-gjenkjenning skjer via navigator.userAgent utelukkende for å vise riktig, plattform-spesifikk veiledningstekst - ikke for å endre funksjonalitet for øvrig.
    • Sjekker matchMedia("(display-mode: standalone)") og navigator.standalone ved tilkobling for å unngå å tilby installasjon når appen allerede kjører installert.

    Referanser

    Brukes av:

    • turer/innstillinger/index.html - installasjonsmulighet for turer/ som PWA.
    • okonomi/innstillinger/index.html - installasjonsmulighet for okonomi/ som PWA.

    Avhengigheter: designsystem/komponenter/ikon/ikon/