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
Ç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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part maWebView.loadUrl(url);
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:
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
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 donc la ligne qui fait planter l'appli c'est:
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)
J'arrive pas à comprendre pourquoi ça ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dialogChargement.show();
-------------------------------------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...
Partager