Cette activité est en cours de rédaction.
Le but ici est de comprendre l’utilité d’un composant puissant : WebView
.
Une fois ce TP terminé, vous pourrez regarder, voire tester le résultat de
ce tutoriel (en anglais).
Les principaux avantage d’une application web sont :
Les inconvénients :
Il y a au moins deux façons de se connecter à une application web :
Le principal avantage d’une application, c’est qu’elle fait partie intégrante
du système d’exploitation. C’est la raison d’être du composant WebView
,
créer des applications web.
De nos jours, on peut ne pas utiliser de webview directement, mais utiliser un cadriciel générateur d’applications ciblant plusieurs OS, comme par exemple Ionic ou Cordova.
Vous pouvez commencer par survoler pendant deux minutes chacune la documentation de WebView, et cette page.
Ensuite, créez une application nommée TestWebView
contenant une activité
principale, elle-même contenant un seul composant : une WebView
.
On peut envoyer du contenu HTML à la webview avec :
String content = "<html><body>Bonjour tout le <b>monde</b> !</body></html>";
webview.loadData(content, "text/html", "utf-8");
Pour afficher un fichier stocké dans assets
, utiliser :
webview.loadUrl("file:///android_asset/mon_fichier.html");
file:///android_asset/
pointe vers un répertoire sur l’appareil où les
fichiers assets
ont été copiés. Il est conseillé de bien l’organiser puisque
les fichiers de assets
ne seront peut-être pas tous des fichiers .html
.
Ajoutez un lien depuis mon_fichier.html
vers mon_autre_fichier.html
.
<link href="mon_fichier.css" media="all" rel="stylesheet" />
<script src="mon_fichier.js"></script>
Dans mon_fichier.js
, mettez un simple document.write('Bonjour!')
.
Pour déboguer à distance :
chrome://inspect
Serez-vous capable d’installer un des exemples de Bootstrap dans la webview de votre application ?
Ici, on cherche à faire communiquer Android en tant que système d’exploitation (communiquant par exemple avec d’autres applications ou des capteurs), avec la webview, ou plus précisément le navigateur qu’elle contient. Le navigateur, à son tour communique avec le HTML, le CSS et le JS.
Reprendre la construction du HTML en y incluant des données avant de le passer à la webview (bof) :
String nom = CAPTURE DEPUIS UN FORMULAIRE D’UNE AUTRE ACTIVITÉ
String content = "<html><body>Bonjour " + nom + " !</body></html>";
Voir ce commit.
En passant des données à JS, on peut aussi passer des données à HTML et à CSS.
Saurez-vous envoyer, depuis le formulaire d’une activité, un code de couleur CSS au fond (background) de la webview contenue dans une autre activité ?
Voir ces liens :
Saurez-vous déclencher, depuis une page dans une webview, un évènement de partage ?