Chrome Android et les Webapps
Depuis la version beta 31 de Chrome Android, il est enfin possible dâajouter un raccourcis vers une webapp sur la home de son terminal et de lâafficher en plein Ă©cran comme une vĂ©ritable application (comme ce que fait iOS depuis longtemps).
Avec la puissance quâatteignent maintenant les terminaux android, une webapp est tout Ă fait viable en tant quâapplication, et selon les contextes suffit amplement par rapport Ă une application native.
Offline ?
Il y a peu, jâĂ©tais dans le mĂ©tro de ma ville, et jâai eu besoin de consulter le plan du mĂ©tro. Je sors donc mon tĂ©lĂ©phone, je lance lâapplication des transports en commun de ma ville. Et lĂ câest le drame : sans connexion web (ce qui est souvent le cas en sous-sol) impossible de consulter le plan du mĂ©tro. Comment dire âŠ
Je me souviens, avant 2000, jâhabitais Paris et jâavais un Palm Vx qui embarquait le plan du mĂ©tro parisien (et lĂ pas de connexion data Ă lâĂ©poque), il y avait mĂȘme un moteur de calcul dâitinĂ©raire!!! DĂ©veloppĂ© par un passionnĂ©.
Ben mince alors, les applications mobiles sont en train de rĂ©gresser. A lâheure du tout connectĂ© on oublie que âça capte pas partoutâ ;)
Câest le prĂ©texte pour tester les Webapps sous Android
Je me suis donc codĂ© une webapp qui utilise Leaflet et le principe de âImage Overlayâ pour afficher une image en lieu et place dâune map (dâun point de vue SIG). Jâaffiche un plan stylisĂ© du mĂ©tro de ma ville. Je lâai dessinĂ© moi mĂȘme pour ne pas avoir de problĂšmes:
Alors pour quâune Webapp puisse âse prendreâ pour une application il y a quelques rĂšgles Ă respecter:
Sâafficher en plein Ă©cran et avoir un comportement âmobileâ
Dans le header, vous aurez besoin de ceci:
Ainsi votre webapp sâaffichera en plein Ă©cran, sans la barre dâurl de Chrome
Associer une icĂŽne Ă votre âapplicationâ
Créez une icÎne de taille 196x196
pixels au format .png
, puis ajoutez le tag suivant au header de votre page:
Et pour la partie âofflineâ ?
Il suffit de crĂ©er un fichier avec lâextension .appcache
au mĂȘme niveau que la page html de votre webapp et de dĂ©crire dans ce fichier toutes les ressources que lâon souhaite mettre en cache. Comme cela, mĂȘme sans connexion, lâapplication sera utilisable (toutes les ressources sont tĂ©lĂ©chargĂ©es Ă la 1Ăšre connexion). Voici Ă quoi va ressembler mon fichier lugdunum.appcache
:
CACHE MANIFEST
# 537bNHNmyCLSmx5RpSB5W2gLn1g=
CACHE:
js/leaflet/leaflet.js
js/leaflet/leaflet.css
js/leaflet/images/layers.png
js/leaflet/images/layers-2x.png
js/leaflet/images/marker-icon.png
js/leaflet/images/marker-icon-2x.png
js/leaflet/images/marker-shadow.png
css/styles.js
images/lugdunum.png
index.html
rocket.png
# catch-all for anything else
NETWORK:
*
http://*
https://*
oĂč images/lugdunum.png
est mon plan de métro.
et vous déclarez le fichier dans votre page html: <html lang="en" manifest="lugdunum.appcache">
Le code pour afficher la map du métro avec Leaflet
Leaflet va aller chercher lâĂ©lĂ©ment du dom qui a un id map
et il affichera la map du métro dans cet élément.
Au final vous pouvez voir Ă quoi cela ressemble ici: http://lugdunum.github.io/metro/
Si vous voulez lâinstaller sur votre terminal android, connectez vous Ă cette url, puis dans le menu de Chrome pour Android, sĂ©lectionnez âAjouter Ă lâĂ©cran dâaccueilâ.
Et le code est ici: https://github.com/lugdunum/metro.
Bon faudra angulariser tout ça ;)
Tweet