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 :

Question sur les webView


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut Question sur les webView
    Bonjour,

    Je voudrai savoir si il y a une fonction qui nous permet de savoir quand notre webView est chargé?

    En faite quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maWebView.loadUrl(url);
    Ça me lance l'affichage de ma webView mais j'ai un ecran noir le temps que ca charge, j'aimerai bien rajouté une progressDialog histoire de montrer à l'utilisateur que l'appli n'a pas plantée...

    Edit:

    J'ai essayé d'utiliser AsyncTask vu que je l'utilise pour mes requêtes et que ca fonctionne, sauf que la ca plante. Contrairement à mes requêtes je ne crée pas une classe qui extends de AsynTask mais je le déclare directement dans la méthode suivante:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    public void NavigatorStart() 
    {
    	setContentView(R.layout.webapp);
     
    	new AsyncTask<String, Void, String>()
    	{
    		Context monIHM = getApplicationContext();
    		ProgressDialog dialogChargement = new ProgressDialog(monIHM);
     
    		protected void onPreExecute()
    		{
    			dialogChargement.setMessage("Chargement du site internet");
    			dialogChargement.show();
    		}
     
    		@Override
    		protected String doInBackground(String... arg0) 
    		{
    			maWebView = (WebView) findViewById(R.id.webkitWebView1); 
     
    			maWebView.getSettings().setJavaScriptEnabled(true);
     
    			//maWebView.requestFocus(View.FOCUS_DOWN);
     
    			maWebView.setWebChromeClient(new WebChromeClient());
    			maWebView.setWebViewClient(new WebViewClient());
     
    			maWebView.clearCache(true);
    			Log.i("CtkRemote","progress= "+maWebView.getProgress());
    			maWebView.loadUrl(url);
     
    			/*while (maWebView.getProgress()!=100)
    			{
    				Log.i("CtkRemote","progress= "+maWebView.getProgress());
    			}*/
    			return null;
    		}
     
    		protected void onPostExecute (String reponse)
    		{
    			dialogChargement.dismiss();
    		}
     
    	}.execute();
    }
    Et quand je passe dedans j'ai ca dans mon LogCat

    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
     
     
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.ViewRoot.setView(ViewRoot.java:472)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.app.Dialog.show(Dialog.java:239)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.PackWeb.PackWeb$4.onPreExecute(PackWeb.java:640)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.os.AsyncTask.execute(AsyncTask.java:391)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.PackWeb.PackWeb.NavigatorStart(PackWeb.java:671)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.PackWeb.PackWeb.eleveExiste(PackWeb.java:410)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.PackWeb.PackWeb$1.onClick(PackWeb.java:318)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.View.performClick(View.java:2364)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.View.onTouchEvent(View.java:4179)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.widget.TextView.onTouchEvent(TextView.java:6541)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.View.dispatchTouchEvent(View.java:3709)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.os.Handler.dispatchMessage(Handler.java:99)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.os.Looper.loop(Looper.java:123)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at android.app.ActivityThread.main(ActivityThread.java:4363)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at java.lang.reflect.Method.invokeNative(Native Method)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at java.lang.reflect.Method.invoke(Method.java:521)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    06-17 13:21:59.647: ERROR/AndroidRuntime(1147):     at dalvik.system.NativeStart.main(Native Method)
    Et donc la ligne qui fait planter l'appli c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dialogChargement.show();
    J'arrive pas à comprendre pourquoi ça ne fonctionne pas

    -------------------------------------EDIT2--------------------------

    En faite je m'étais trompé je devais pas faire un getApplicationContext() mais récupérer l'instance de ma classe. Mais mon problème est toujours présent, je n'arrive pas à mettre une progressDialog le temps que la webView charge l'index...Elle s'affiche quelques seconde et disparait de l'écran alors que la webView n'a toujours pas finie de charger...

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Par défaut
    Le plus simple quand même c'est de regarder la javadoc d'android :

    celui de la WebView avec un exemple sur exactement ce que tu cherches

  3. #3
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    Désolé j'avoue que j'y avais pas pensé, mais j'arrive pas à y arrivé

    Dans l'exemple c'est bien ce code qui sert à faire ce dont j'ai besoin?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Let's display the progress in the activity title bar, like the
     // browser app does.
     getWindow().requestFeature(Window.FEATURE_PROGRESS);
     
     
     final Activity activity = this;
     webview.setWebChromeClient(new WebChromeClient() {
       public void onProgressChanged(WebView view, int progress) {
         // Activities and WebViews measure progress with different scales.
         // The progress meter will automatically disappear when we reach 100%
         activity.setProgress(progress * 1000);
       }
     });
    Edit:

    J'ai résolu mon problème, c'était bien les bonnes méthodes, mais il fallait simplement que je les adaptes à mon cas.

    Merci en tout cas

  4. #4
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    En faite j'ai une nouvelle question.

    Une fois que je suis sur ma webView, lors de chaque chargement, j'ai une progressDialog qui s'affiche. Cela me convient, mais le souci c'est qu'elle resté figée. J'ai lu dans la doc (et si j'ai bien compris) que lorsqu'on clique sur un lien, en gros ca va utiliser le navigateur par défault d'androïd pour gérer l'affichage. Du coup je me suis dit que ca pourrai venir de là, donc j'ai suivi la doc en gérant moi même cela de la même façon que sur la doc, mais le problème persiste.

    Vous avez une idée d'où le problème pourrai venir?

Discussions similaires

  1. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 02h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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