Une méthode facile pour passer d’une application (service) web, à une application native Android est l’utilisation d’une classe bien spéciale sous Android appelée WebView. Cette classe, qui hérite de la classe View offre la possibilité d’afficher une page web à l’intérieur d’une activité. On peut donc, à partir d’un site web (à peu près) optimisé pour les mobiles, créer une application dite native. Voyons comment ça marche.
- Ajouter le WebView au layout
C’est la première chose à faire. Cliquez donc sur votre fichier layout.xml ou une chose du genre, et ajouter les lignes suivantes :
1 |
<?xml version="1.0" encoding="utf-8"?> |
On y dit simplement que notre WebView (et donc notre page web) s’affichera de façon à occuper tout l’espace qui lui est offert par son élèment parent (fill_parent).
- Appeler le WebView dans votre activité
A prèsent dans votre activité principale, il vous suffit d’initialiser votre WebView et d’afficher le site, en utilisant la méthode loadUrl():
1 3 |
WebView myWebView = (WebView) findViewById(R.id.webview); myWebView.setWebViewClient(new WebViewClient()); // Tous les liens s'ouvriront directement depuis la WebView |
La dernière chose à faire est d’autoriser l’accès internet à votre application, en modifiant le fichier manifest :
1 |
<manifest ... > |
Voici un exemple complet, avec mon site web mobile développé à l’aide de jQuery Mobile, et porté sous Android :
Activité principale | |
1 |
package fr.charlesen.projets; |
main.xml | |
1 |
<?xml version="1.0" encoding="utf-8"?> |
strings.xml | |
1 |
<?xml version="1.0" encoding="utf-8"?> |
Fichier manifest | |
1 |
<?xml version="1.0" encoding="utf-8"?> |
Ca donne ça avec l’émulateur :
WebView myWebView =(WebView) findViewById(R.id.webview);</p>
myWebView.loadUrl("http://www.example.com");