Android WebView

ou comment ouvrir un navigateur web depuis une appli….

Je rédige ce petit tutoriel car l’exemple qui se trouve sur le site web d’android ne fonctionne pas. Le voici donc revu et corrigé !

L’objet WebView vous permet de créer votre propre Activity pour un browser internet.
Ca peut être l’activité principale de votre application ou elle peut être lancée via un intent.

Pour tester, créer un nouveau projet OnTheWeb avec comme activity : OnTheWeb et comme nom de package : com.test.ontheweb.

Voici le code de l’activité :

package com.test.ontheweb;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class OnTheWeb extends Activity {
	WebView webview;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.mywebview);

		webview = (WebView)findViewById(R.id.webview);
		webview.setWebViewClient(new myWebViewClient());
		webview.getSettings().setJavaScriptEnabled(true);
		webview.loadUrl("http://www.dansunan.com");
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
			webview.goBack();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	private class myWebViewClient extends WebViewClient {
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			view.loadUrl(url);
			return true;
		}
	}
}

Et le fichier mywebview.xml qui va bien :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />

</LinearLayout>

Bien sûr , pour avoir accès à internet, il faut ajouter à votre fichier AndroidManifest.xml la ligne :

<uses-permission android:name=”android.permission.INTERNET” />

NB : l’erreur du tutoriel original se trouve dans le fichier .xml qui décrit la WebView.
La LinearLayout définie doit avoir les propriétés :

android:layout_width=”fill_parent”
android:layout_height=”fill_parent”

au lieu de :

android:layout_width=”wrap_content”
android:layout_height=”wrap_content”

This entry was posted in android and tagged , , . Bookmark the permalink.

12 Responses to Android WebView

  1. Pingback: Developpeur Web » Developpement Androïd : Bien débuter sous ubuntu

  2. REQ says:

    C’est bien expliqué
    Merci,

  3. Valentin says:

    Cela fait bien longtemps que je cherche ce code, tu pourrais m’envoyer le zip avec l’application pre-fabriqué ? Comme sa j’airais plus qu’a changer l’adresse.

    Merci beaucoup sur tu me le donne !! Voici mon adresse : valentin@univergold.com

    Merci encore !
    @+

  4. Info Tech says:

    Merci pour le tuto bien plus intuitif que celui fourni sur le site web d’Android 😉

  5. together says:

    Bonjour,
    tutoriel est bien expliqué sauf qu’il m’affiche “page Web non disponible” malgré que j’ai autorisé l’accès à internet dans le fichier AndroidManifest.xml et mon wifi est activé.

    quelqu’un peut m’éclaircir ce problème svp .

    merci

  6. flo says:

    As-tu essayé avec une autre page web que celle du tutoriel ?
    Tu devrais relancer ton appli en mettant comme URL à ouvrir http://www.google.com.

  7. together says:

    merci flo pour ta réponse, au fait j’ai résolu le problème, j’ai mal placé
    <> dans le fichier
    AndroidManifest.xml

  8. pap says:

    Merci pour ce tuto très complet. C’est parfait pour les débutants en Android comme moi.

    J’ai essayé de le reproduire mais à l’ouverture de l’application j’ai une erreur.

    “Sorry! The application has stopped unexpectedly. Please. Try Again.”

    J’ai aucune idée d’où ça pourrait venir? De la configuration de l’émulateur?

    Merci d’avance

  9. flo says:

    @pap : il faudrait plus d’infos pour vous aidez. peut être un log contenant des traces du crash ?????

  10. Maca says:

    Quand je test avec l’emulateur ca marche niquel, mais en apk sur mon tél il me dit qu’il arrive pas a accéder à la page. Comment ca se fait ?
    Merci

  11. flo says:

    Il faudrait plus d’infos pour répondre…. Un log ???

  12. Juan says:

    C’est parfait pour les débutants en Android comme moi. Merci pour ce tuto très complet

Comments are closed.