Cómo mostrar la barra de progreso en webview?

Estoy intentando abrir una página web en mi aplicación usando WebView . Cuando abro la página web me muestra la pantalla en blanco durante un tiempo y luego abrir esa página en el navegador dentro de mi aplicación.

¿Alguien me sugiere cómo mostrar el progreso o deshacerse de esa pantalla en blanco que viene durante la carga de webview?

Estoy usando código siguiente:

 WebView mWebView = (WebView) findViewById(R.id.mywebview); mWebView.getSettings().setJavaScriptEnabled(true); // error handling final Activity activity = this; mWebView.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); } }); // error handling mWebView.loadUrl(URL); mWebView.setWebViewClient(new HelloWebViewClient()); 

Prueba esto:

 getWindow().requestFeature(Window.FEATURE_PROGRESS); WebView mWebView = (WebView) findViewById(R.id.mywebview); mWebView.getSettings().setJavaScriptEnabled(true); final Activity activity = this; mWebView.setWebChromeClient(new WebChromeClient(){ public void onProgressChanged(WebView view, int progress) { activity.setTitle("Loading..."); activity.setProgress(progress * 100); if(progress == 100) activity.setTitle("My title"); } }); mWebView.loadUrl(URL); 

Aquí está el código que estoy usando:

Dentro de WebViewClient:

 webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); findViewById(R.id.progress1).setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); findViewById(R.id.progress1).setVisibility(View.GONE); } }); 

Aquí está el XML:

 <ProgressBar android:id="@+id/progress1" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

Espero que esto ayude..

Necesitas hacer algo como esto:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_PROGRESS); this.setProgressBarVisibility(true); } 

Y entonces

 final Activity activity = this; mWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setProgress(progress * 100); } }); 

Actualizar
Sé que es un poco demasiado tarde, pero tengo poca nota lateral: no debe usar setWebViewClient() dos veces. La segunda llamada cancela la primera llamada para que no obtenga el manejo de errores.

1. En la llamada oncreate ur AsyncTask .

2. En asynctask u acaba de hacer diálogo de progreso y mostrar el diálogo de progreso.

3. En el cliente webview u sólo mostrar nuevamente el diálogo de progreso haga clic en cualquier enlace del sitio web que se abra en ur webview y después de completar el enlace de carga que el método override onPageFinished y en este método descartamos el diálogo de progreso.

Crecer

 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.web_view); web_view = (WebView) findViewById(R.id.web_view); OpenWebSiteInWebView opensite = new OpenWebSiteInWebView(); opensite.execute(); } 

AsyncTask

 private class OpenWebSiteInWebView extends AsyncTask<String, Void, String> { @SuppressWarnings("deprecation") @SuppressLint("SetJavaScriptEnabled") @Override protected String doInBackground(String... params) { web_view.setWebViewClient(new MyWebViewClient()); web_view.loadUrl("ur site name"); return null; } @Override protected void onPostExecute(String result) { } @Override protected void onPreExecute() { pd = new ProgressDialog(SiteOpenInWebView.this); pd.setMessage("Please wait Loading..."); pd.show(); } } 

WebViewClient

 private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); if (!pd.isShowing()) { pd.show(); } return true; } @Override public void onPageFinished(WebView view, String url) { System.out.println("on finish"); if (pd.isShowing()) { pd.dismiss(); } } } 

Aquí está el código que estoy usando en KOTLIN :

 private fun setupWebView() { val webViewClient: WebViewClient = object: WebViewClient() { override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { view?.loadUrl(request?.url.toString()) return super.shouldOverrideUrlLoading(view, request) } override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { showProgressDialog() super.onPageStarted(view, url, favicon) } override fun onPageFinished(view: WebView?, url: String?) { hideProgressDialog() super.onPageFinished(view, url) } } webView.webViewClient = webViewClient webView.settings.javaScriptEnabled = true webView.settings.defaultTextEncodingName = "utf-8" } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.