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”
[...] Faire sa première Webview en suivant ce tutoriel Webview et les conseils de google [...]
C’est bien expliqué
Merci,