Comment afficher la barre de progression sur le Web?

J'essaie d'ouvrir une page Web dans ma application en utilisant WebView . Lorsque j'ouvre la page Web, il me montre un écran vierge pendant un certain temps, puis ouvre cette page dans le navigateur dans ma application.

Quelqu'un me suggère comment faire des progrès ou se débarrasser de cet écran vierge qui survient pendant le chargement de la vision du Web?

  • SavedInstanceState est toujours nul dans le fragment
  • Comment puis-je prendre en charge le texte Farsi (Persan) dans Android?
  • Différence entre les préférences et les préférences partagées dans Android
  • Extraits de code dans le studio Android
  • Impossible de résoudre: com.android.support:support-v4:23.0.0
  • Erreur de mémoire insuffisante dans Android suite à la taille de la taille du tas
  • J'utilise le code suivant:

     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()); 

    5 Solutions collect form web for “Comment afficher la barre de progression sur le Web?”

    Essaye ça:

     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); 

    Voici le code que j'utilise:

    Inside 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); } }); 

    Voici le XML:

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

    J'espère que cela t'aides..

    Vous devez faire quelque chose comme ceci:

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

    Et alors

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

    Mettre à jour
    Je sais que c'est un peu trop tard mais j'ai une petite note: vous ne devriez pas utiliser setWebViewClient() deux fois. Le deuxième appel annule le premier appel afin que vous n'obtiendiez pas la gestion des erreurs.

    1. Dans le formulaire, appelez AsyncTask .

    2. Dans Asynctask, vous faites simplement une boîte de dialogue de progression et affichez la boîte de dialogue de progression.

    3. Dans le client webview, vous venez de montrer une nouvelle fois la boîte de dialogue de progression cliquez sur n'importe quel lien du site Web qui s'ouvre dans votre visionnement web et après le lien de chargement complet, nous annulons la méthode onPageFinished et, dans cette méthode, nous ignorons la boîte de dialogue de progression.

    Oncreate

     @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(); } } } 

    Voici le code que j'utilise dans 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" } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.