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...