IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Réaliser un mini navigateur internet [Tutoriel]


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut Réaliser un mini navigateur internet
    Bonjour,

    Voici un petit tutoriel expliquant comment réaliser un mini navigateur web: http://a-renouard.developpez.com/tut...avigateur-web/

    Toutes les remarques sont les bienvenues !

  2. #2
    Membre émérite
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Billets dans le blog
    15
    Par défaut UI Thread
    Bonjour,

    ne serait-ce pas mieux, dans le OnClickListener, de créer un nouveau Thread avec le code à réaliser et le lancer, afin de libérer l'UI Thread le plus tôt possible ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    button.setOnClickListener(
    	new OnClickListener() {
    		@Override
    		public void onClick(View v) {
                            // ------------------ Modification ici ---------------
    			new Thread(){
    				public void run(){
                           //----------------------------------------------------
    					//on récupère l'url présente dans l'EditText
    					url = editText.getText().toString();	
     
    					try {
    						//on récupère le code HTML associé à l'URL que l'on a indiqué dans l'EditText
    						pageWeb = Tutoriel7_Android.getPage(url);
     
    						//on autorise le JavaScript dans la WebView
    						webView.getSettings().setJavaScriptEnabled(true);
    						//on charge les données récupérées dans la WebView
    						webView.loadDataWithBaseURL("fake://not/needed", pageWeb, mimeType, encoding, "");
    					} catch (ClientProtocolException e) {
    						e.printStackTrace();
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
                             //----------------- Modification ici ----------------------
    				}
    			}.start();
                            //--------------------------------------------------------
    		}
    	}
    );

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut
    Tu as raison tails c'est mieux de créer un nouveau Thread !

    Merci pour ta remarque intéressante !

    Edit : J'ai corrigé le tuto et mis le code que tu as écrit tails !

  4. #4
    Membre émérite
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Billets dans le blog
    15
    Par défaut Merci de l'attention portée à ma remarque
    Merci beaucoup de l'attention portée à ma remarque

  5. #5
    Invité de passage
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Par défaut Plus simple
    Cette version me semble beaucoup plus simple. La méthode getPage() n'est plus utilisée.
    On profite en plus de la gestion du cache du navigateur car on le laisse gérer la connexion. On n'a pas besoin de thread.
    NOTE : Code non testé (pas de sdk sous la main...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    	/** Called when the activity is first created. */
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
     
    		//On récupère l'EditText, le WebView, et le Button grâce au ID
    		editText = (EditText) findViewById(R.id.EditText);
    		webView = (WebView) findViewById(R.id.WebView);
    		button = (Button) findViewById(R.id.Button);
    		//on autorise le JavaScript dans la WebView
    		webView.getSettings().setJavaScriptEnabled(true);
     
    		//On affecte un évènement au bouton
    		button.setOnClickListener(
    				new OnClickListener() {
    					@Override
    					public void onClick(View v) {
    						//on récupère l'url présente dans l'EditText
    						url = editText.getText().toString();
    						webview.setWebChromeClient(new WebChromeClient() {
    							// TODO implémenter gestion d'erreur, progression du chargement...
    						}
    						//on charge la page
    						webView.loadUrl(url);
    					}
    				}
    				);
    	}
    Cf. Doc webview et Tutorial webview

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut
    Citation Envoyé par zeludo Voir le message
    NOTE : Code non testé (pas de sdk sous la main...)
    Je testerai et je te tiens au courant en tout cas merci de proposer des améliorations c'est comme cela qu'on avance :

Discussions similaires

  1. réalisation d'un navigateur WEB
    Par capello123 dans le forum Windows
    Réponses: 4
    Dernier message: 07/07/2006, 19h19
  2. Lancement d'un navigateur internet sur une URL SIMPLEMENT
    Par Jean-mich dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 10/12/2005, 23h46
  3. Editer un XML avec un navigateur internet...
    Par kobe dans le forum APIs
    Réponses: 11
    Dernier message: 17/10/2005, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo