Add To Home Screen (A2HS).

Vanaf Angular 6 verloopt A2HS volledig automatisch. In principe is deze optie vooral bedoeld voor mobiele devices, maar je kan dit evenzeer testen in de webbrowser van de PC/laptop.

Om een website als web-app te "installeren" verwacht de browser dat je wel aan enkele criteria voldoet. Verder zijn er ook nog kleine verschillen tussen de verschillende browsers en op verschillende platformen. Wij werken hoofdzakelijk met Chrome en daar gaan we ons dan ook op concentreren.

Een handig overzicht vind je op de Google developer pagina. De criteria voor Chrome (mobile) zijn:

Zijn aan al deze voorwaarden voldaan, dan kan je de site als web-app installeren. Afhankelijk van de configuratie in je app, zal Chrome zelf een pop-up tonen of er verschijnt binnen de site een link waarmee je de app kan installeren.

Indien de gebruiker op de link of op de pop-up klikt, en hij klikt vervolgens op annuleren, duurt het 3 maanden voordat de link/pop-up opnieuw verschijnt.

Gelukkig kan je vanuit het Chrome-menu ( ⋮ ) bovenaan rechts op ieder moment de app opnieuw installeren.

Voor we onze eigen app aanpassen, gaan we best enkele online website bekijken en installeren. Even Googelen en je vindt tal van sites die volledig PWA en A2HS ondersteunen. Enkele voorbeelden:
Nase, Twitter mobile, Trivago, Hacker News Reader, Pwa Rocks, ...

Open één van bovenstaande sites en kijk wat er gebeurt op je smartphone en op je laptop. Ziehier het voorbeeld van Trivago.

A2HS op Chrome voor Android

Zodra aan alle voorwaarden voldaan zijn, verschijnt binnen het browservenster een melding dat je de site kan toevoegen aan het startscherm. Klik vervolgens op Toevoegen. De site verschijnt even later als opstart-icoon tussen alle andere native applicaties. Klik je op Annuleren, dan hoef je geen drie maanden te wachten om alsnog te installeren. Klik, bovenaan links, op het menu-icoon ( ⋮ ) en kies Toevoegen aan startscherm.

A2HS op Chrome voor Android

Een web-app verwijderen doe je op dezelfde manier zoals native apps verwijderen.

A2HS op Chrome voor desktop/laptop

Als je een site debugt, is het natuurlijk niet handig om drie maanden te wachten voor je weer verder kan testen. Daarom gaan we eerst aan aantal beperkingen van PWA omzeilen. Deze zitten verborgen achter enkele eigenschappen (flags) die je binnen Chrome kan aanpassen.

Open nu https://www.trivago.be/.
Je kan een web-app op drie manieren installeren.

  1. Via de banner binnen de site. (indien aanwezig)
    Afhankelijk van hoe de site is opgebouwd, krijg je soms wel, maar soms ook niet, een banner of link binnen de site te zien. De installatie gebeurt dan analoog met de installatie op een mobiel toestel.
  2. Via de console. (eenmalig)
    Open de console, klik op het tabblad Application en vervolgens op Manifest. Hier zie je een link Add to homescreen. Let op: deze link kan je maar eenmaal gebruiken. Daarna moet je opnieuw drie maanden wachten voor deze link terug werkt.

    Chrome console
  3. Via het Chrome-menu ( ⋮ ) (werkt altijd)
    Hier zie je een link <appname> Installeren. In tegenstelling tot de eerste twee methodes, werkt deze methode altijd, zelfs nadat je de app terug verwijderd hebt. Let op: het kan soms wel enkele minuten duren voordat de link in het menu zichtbaar wordt.

    Chrome menu

Op je bureaublad verschijnt een snelkoppeling naar de app. Als je hierop klikt, opent de app in een eigen (browser)venster.

Om de app te verwijderen, volstaat het NIET om deze snelkoppeling te verwijderen. De app zelf blijft namelijk geïnstalleerd!

Persoonlijke site optimaliseren

Nu we weten hoe de installatie op verschillende toestellen verloopt, kunnen we onze eigen toepassing verder personaliseren en zowel mobiel, als in een browser installeren.
Eerst gaan we onze icoontjes updaten. Daarna de configuratie aanpassen en vervolgens onze lokale copy testen in de browser.
Als alles naar wens verloopt kan je de site uploaden naar de hosting en mobiel testen.

Vergeet niet na elke aanpassing een nieuwe build-versie te maken, $ ng build --prod

en te testen vanuit de dist-map. $ http-server -c-1 dist/projectTMK

Nieuwe web-icons genereren

Binnen de map src/assets/icons staan de acht icoontjes die de app gebruikt. Je kan deze via een node-script snel vervangen.

Nieuwe icoontjes

Manifest.json aanpassen

Homepage aanpassen

Het head-gedeelte van de indexpagina is op dit moment nog vrij beperkt. Afhankelijk van de browser en het platform waarmee je de site bekijkt, voeg je best nog enkele meta-tags toe. Gelukkig hoef je dit niet allemaal te onthouden. Er bestaat namelijk een script dat voor ons alle info die een browser/platform nodig heeft, automatisch binnen de head-tag injecteert.
Je kan zelf een aantal meta-tags, die nu op de index-pagina staan, verwijderen. Het script zal deze tijdens het laden van de pagina automatisch terug toevoegen.

Meer info op: PWACompat: the Web App Manifest for all browsers

Installatiebanner toevoegen

Sinds Chrome 68 is de automatisch geïntegreerde "Add to Home Screen" banner verdwenen. Vanaf nu heeft de programmeur alles zelf in handen. De eerste maal dat een gebruiker de site bezoekt, wordt het beforeinstallprompt-event getriggerd. Dit event kunnen we dus makkelijk detecteren en vervolgens een eigen banner in onze applicatie tonen/verbergen.

Meer info vind je hier: App install banners

De code die we in ons project verwerken, komt grotendeels uit deze site, maar dan omgevormd naar Angular.

Open src/app/app.component.html en voeg onderaan een footer toe.


  

  

Open src/app/app.component.ts en voeg volgende code toe:


  


  

App lokaal testen