Que dois-je avoir besoin de mon code pour créer la boîte de dialogue J'ai essayé p> < Pré> xxx pré> n'a pas fonctionné. p> p> rejeter () code> Une fois que la vision Web est chargée?
6 Réponses :
Comment accédez-vous Dans votre Votre HOMECLIENT doit ressembler à ceci: P> PD code> dans
OnpageFinhed () code>? (Et êtes-vous sûr qu'il est vraiment appelé lorsque la page se charge?)
Oncreate () code>, essayez de passer
PD code> à votre
HOMECLIENT code> Donc, que
HOMECLIENT code> peut prendre en charge le renvoi de la boîte de dialogue. P>
ProgressDialog pd = ProgressDialog.show(Fbook.this, "",
"Loading. Please wait...", true);
webview.setWebViewClient(new homeClient(pd));
Très bel exemple, j'aime ça!
Cool ... la partie que j'ai manquée pendant quelques minutes maintenant.
: o
webview.setwebviewClient (nouveau chôlant ()); HOMECLIENT () STRUT> ???? Essayez ceci p> update: strong>
C'est un bon exemple. p> Android Webview et la solution de progression indéterminée p> p>
Ceci est OK.
public class WordActivity extends Activity { private WebView webview; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); Bundle objetbunble = this.getIntent().getExtras(); webview = (WebView) findViewById(R.id.webview); final Activity activity = this; webview.getSettings().setJavaScriptEnabled(true); webview.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onLoadResource (WebView view, String url) { if (progressDialog == null) { progressDialog = new ProgressDialog(activity); progressDialog.setMessage("Chargement en cours"); progressDialog.show(); } } public void onPageFinished(WebView view, String url) { if (progressDialog.isShowing()) { progressDialog.dismiss(); progressDialog = null; } } }); webview.loadUrl("http://www.example.com"); } }
Hey Samuel, j'ai utilisé votre code pour webviews pour le lancement initial tout ce qui fonctionne bien. Donc, lorsque je navigue vers la même navigation Web pour la deuxième fois, ProgressDialog montrent continuellement après la pageSinish (Remarque: attendu 10 minutes mais la boîte de dialogue de progrès n'a pas rejeté) S'il vous plaît aidez-moi comment puis-je faire tat .. merci d'avance ...
@jorgesys Ce n'est pas précis à 100%. Si vous avez plusieurs iframes dans une page, vous aurez de multiples formés (et surpagètent). Et si vous avez plusieurs redirections, cela peut également échouer. Je pense que cette approche résout tous les problèmes:
boolean loadingFinished = true; boolean redirect = false; mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) { if (!loadingFinished) { redirect = true; } loadingFinished = false; webView.loadUrl(urlNewString); return true; } @Override public void onPageStarted(WebView view, String url) { loadingFinished = false; //SHOW LOADING IF IT ISNT ALREADY VISIBLE } @Override public void onPageFinished(WebView view, String url) { if(!redirect){ loadingFinished = true; } if(loadingFinished && !redirect){ //HIDE LOADING IT HAS FINISHED } else{ redirect = false; } } });
Si vous souhaitez simplement montrer la progression avant le chargement de la page Web dans WebView. Vous pouvez simplement demander
FONCTION DE FENÊTRE DE FONCTION DE FENÊTRE STROND> Comme P> xxx pré> avant
setContentView (r.layout.blahblah); code> p>
et montrez-lui progression dans ONPROGRESSCANGED COMME P>
webView.setWebViewClient(new WebViewClient() { ProgressDialog rogressDialog ; @Override public void onPageStarted(WebView view, String url, Bitmap bitmap) { progressDialog = ProgressDialog.show(context, "Loading...", "Please wait...");//where context = YourActivity.this; super.onPageStarted(view, url, bitmap); } @Override public void onPageFinished(WebView view, String url) { progressDialog .dismiss(); super.onPageFinished(view, url); } }); webView.loadUrl(url);
wv1.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(Entertainment.this, description, Toast.LENGTH_SHORT).show(); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { progressDialog.show(); } @Override public void onPageFinished(WebView view, String url) { progressDialog.dismiss(); String webUrl = wv1.getUrl(); } }); wv1.loadUrl(url); The above code will show a progress dialogue for every incoming link you navigate to the in webview.
Onpage est-il appelé? Dans le fil de l'interface utilisateur?
Désolé, j'aurais dû juste faire ceci en premier lieu, je mets toute la classe de la façon dont je suis courant. Et si vous faites défiler, vous pouvez voir que j'ai essayé un surpagefinché et que cela ne fonctionnait pas. Peut-être que la façon dont je l'ai fait était faux? Ou où je l'ai placé?