Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Barra de progreso de Android WebView

He mirado una pregunta similar a esto aquí, pero como soy un novato ¿alguien podría explicar cómo conseguir que esto funcione en un WebView o al menos cómo establecer un retraso de tiempo de 10 segundos para que la gente sepa que se está cargando?

  • Cómo hacer que un TextView parezca un encabezado PreferenciaCategoría de un ajuste
  • Android: ellipsize end - Caracteres adicionales después de la elipse
  • Android obtiene la posición de desplazamiento exacta en ListView
  • Android: ¿Qué hacer si el rendimiento de ListView sigue siendo insuficiente?
  • Modo HTML5 con Phonegap y AngularJS
  • Conecta el iPhone a Android Wifi Direct soft AP
  • (Java / Android) Calcular días entre 2 fechas y presentar el resultado en un formato específico
  • Cómo probar afirma que lanza excepción en Android
  • Android: Establecer el color de CheckBox
  • ListView con añadir y eliminar botones en cada fila en android
  • Cómo establecer sólo un valor numérico para edittext en android?
  • Depurar javascript en android emulador con phonegap
  • 7 Solutions collect form web for “Barra de progreso de Android WebView”

    Para una barra de progreso horizontal, primero debe definir su barra de progreso y vincularla con su archivo XML como este:

    final ProgressBar pbar; final TextView txtview = (TextView)findViewById(R.id.tV1); pbar = (ProgressBar) findViewById(R.id.pB1); 

    A continuación, puede utilizar el método onProgressChanged en su WebChromeClient:

     MyView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { if(progress < 100 && pbar.getVisibility() == ProgressBar.GONE){ pbar.setVisibility(ProgressBar.VISIBLE); txtview.setVisibility(View.VISIBLE); } Pbar.setProgress(progress); if(progress == 100) { pbar.setVisibility(ProgressBar.GONE); txtview.setVisibility(View.GONE); } } }); 

    Después de eso, en tu diseño tienes algo como esto

     <TextView android:text="Loading, please wait . . ." android:textAppearance="?android:attr/textAppearanceSmall" android:id="@+id/tV1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#000000"></TextView> <ProgressBar android:id="@+id/pB1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:padding="2dip"> </ProgressBar> 

    Así es como lo hice en mi aplicación.

    Acabo de encontrar un buen ejemplo de cómo hacer esto aquí: http://developer.android.com/reference/android/webkit/WebView.html . Sólo tienes que cambiar el setprogress desde:

     activity.setProgress(progress * 1000); 

    a

     activity.setProgress(progress * 100); 

    Aquí es la manera más fácil de añadir barra de progreso en la vista Web de Android.

    Agrega un campo booleano en tu actividad / fragmento

     private boolean isRedirected; 

    Este booleano evitará la redirección de páginas web causa de enlaces muertos. Ahora usted puede pasar su objeto WebView y Url web en este método.

     private void startWebView(WebView webView,String url) { webView.setWebViewClient(new WebViewClient() { ProgressDialog progressDialog; public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); isRedirected = true; return false; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); isRedirected = false; } public void onLoadResource (WebView view, String url) { if (!isRedirected) { if (progressDialog == null) { progressDialog = new ProgressDialog(SponceredDetailsActivity.this); progressDialog.setMessage("Loading..."); progressDialog.show(); } } } public void onPageFinished(WebView view, String url) { try{ isRedirected=true; if (progressDialog.isShowing()) { progressDialog.dismiss(); progressDialog = null; } }catch(Exception exception){ exception.printStackTrace(); } } }); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(url); } 

    Aquí cuando empiece a cargar llamará onPageStarted . Aquí el campo de configuración de Boolean es falso. Pero al terminar la carga de la página, llegará al método onPageFinished y aquí el campo Boolean se establecerá en true. A veces, si url está muerta, se redirigirá y llegará a onLoadResource() antes de método onPageFinished . Por esta razón, no ocultará la barra de progreso. Para evitar esto estoy comprobando if (!isRedirected) en onLoadResource()

    En el método onPageFinished() antes de desechar el onPageFinished() diálogo de progreso, puede escribir su código de 10 segundos de retardo de tiempo

    Eso es. Feliz codificación

    Es cierto, también hay una opción más completa, como cambiar el nombre de la aplicación para una frase que desee. Compruebe este tutorial que puede ayudar:

    http://www.firstdroid.com/2010/08/04/adding-progress-bar-on-webview-android-tutorials/

    En ese tutorial tienes un ejemplo completo de cómo usar la barra de progreso en una aplicación webview.

    Adrian.

    Según Md. Sajedul Karim respuesta escribí una similar.

     webView = (WebView) view.findViewById(R.id.web); progressBar = (ProgressBar) view.findViewById(R.id.progress); webView.setWebChromeClient(new WebChromeClient()); webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); progressBar.setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); progressBar.setVisibility(View.GONE); } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); Toast.makeText(getActivity(), "Cannot load page", Toast.LENGTH_SHORT).show(); progressBar.setVisibility(View.GONE); } }); webView.loadUrl(url); 

    Espere hasta que el proceso termine

     while(webview.getProgress()< 100){} progressBar.setVisibility(View.GONE); 
      webview= (WebView) findViewById(R.id.web); webview.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { WebActivity .setTitle("Loading..."); WebActivity .setProgress(progress * 100); if(progress == 100) WebActivity .setTitle(R.string.app_name); } }); webview.setWebViewClient(new WebViewClient()); webview.getSettings().setJavaScriptEnabled(true); webview.loadUrl("http://google.com"); 

    Para más información, haga clic aquí http://androiddhina.blogspot.in/2015/05/android-load-webview-with-progressbar.html

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.