tite fractale

Modif f46c9169

Date:   Tue Mar 3 07:46:50 2015 +0100

    Premier jet pour Android webviews.

diff --git a/input/activite_Android_webviews.md b/input/activite_Android_webviews.md
new file mode 100644
index 0000000..eb1ab50
--- /dev/null
+++ b/input/activite_Android_webviews.md
@@ -0,0 +1,94 @@
+Title: Android activities  
+Author: Christophe Gragnic  
+Status: published  
+Assets: hl  
+
+[TOC]
+
+# Introduction
+
+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 :
+
+* …
+
+Il y a au moins deux façons de se connecter à une application web :
+
+* depuis un navigateur ;
+* depuis une application qui navigue.
+
+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](http://developer.android.com/guide/webapps/webview.html).
+
+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](http://ionicframework.com/),
+[Cordova](http://cordova.apache.org/), Titatium ou Kivy.
+
+# Un affichage riche
+
+Pour plus d’informations, voir
+[la documentation de WebView](http://developer.android.com/reference/android/webkit/WebView.html),
+et [cette page](http://developer.android.com/guide/webapps/webview.html).
+
+## Premier contenu
+
+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");
+
+## Depuis un fichier
+
+Pour « ouvrir » 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 pas que des fichiers `.html`.
+
+## Fichiers auxiliaires
+
+Pour débugguer à distance :
+
+* Il faut autoriser le débuggage à distance. Voir
+  [ce commit](https://github.com/Microalg/microalg-android/commit/178430fcfb3505f1c94f96ba96515177b997f1a8).
+* Et lire attentivement [les instructions ici](https://developer.chrome.com/devtools/docs/remote-debugging).
+
+# Échange de données
+
+Ici, on cherche à faire communiquer Android en tant que système d’exploitation
+(communiquant par exemple avec d’autres applications), avec la webview, ou
+plus précisément le navigateur qu’elle contient, qui lui communique avec le
+HTML, le CSS et le JS.
+
+## Android vers WebView
+
+### Simple injection de HTML
+
+Reprendre la construction du HTML en y incluant des données :
+
+    String content = "<html><body>Bonjour " + nom + " !</body></html>";
+
+### Passage de données à JS
+
+Voir [ce commit](https://github.com/Microalg/microalg-android/commit/9b54d9dcbbc5b298910979343b45ad19836a92d5).
+
+En passant des données à JS, on peut aussi passer des données à HTML et à CSS.
+
+Saurez-vous afficher l’heure depuis Java vers Javascript ? Une liste de
+contacts, une position GPS ?
+
+## WebView vers Android
+
+Voir ces liens :
+
+* [addJavascriptInterface](http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface%28java.lang.Object,%20java.lang.String%29)
+* [le passage correspondant dans la doc officielle des webapps](http://developer.android.com/guide/webapps/webview.html#BindingJavaScript)









Page générée le 08/03/2015, 22h28'33" (page virtuelle).
historique global

 TogetherJS