android - WebView偶爾無法加載,沒有發(fā)起請求
問題描述
webview有時(shí)候加載不出網(wǎng)頁,頁面關(guān)掉再打開也不行,顯示一片空白。放著不動(dòng),過一會(huì),反而能打開網(wǎng)頁。
當(dāng)加載不出的時(shí)候,發(fā)現(xiàn)根本沒有發(fā)起請求。
有大神知道原因嗎?
問題解答
回答1:WebView這個(gè)控件作為Android系統(tǒng)中很重要的一個(gè)控件,其不會(huì)出現(xiàn)樓主所說的情況的。樓主可能看到的是表面顯示。
當(dāng)調(diào)用WebView的loadUrl(String url)之后,WebView就開始加載網(wǎng)頁了,但是在沒有加載出來的時(shí)候,它會(huì)仍然顯示著其原有的白色背景,加載出來后才會(huì)顯示網(wǎng)頁。這可能是你說的顯示一片空白,然后過一會(huì)才能打開網(wǎng)頁。其實(shí)一直都在加載,只是加載比較慢,你看不出來有變化而已。
樓主可以使用WebView.setWebViewClient,傳入一個(gè)自定義的WebViewClient。同樣還有WebView.setWebChromeClient。覆寫其中一些函數(shù):
webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) {//頁面開始加載 } @Override public void onPageFinished(WebView view, String url) {//頁面加載完畢 } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {//加載出現(xiàn)失敗super.onReceivedError(view, errorCode, description, failingUrl); }});webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) {//加載過程回調(diào),progress是接受到的數(shù)據(jù)的百分比 }});
樓主如果對WebView進(jìn)行如上的配置,然后在loadUrl(String url),就能看到這些函數(shù)的回調(diào)了。問題里的內(nèi)容都可以從Log里得到解答。
回答2:1、這樣的情況,我昨天真的遇到了2、分析原因:A.建議樓主用charles抓包看看
B.我的原因:加載url的時(shí)候,一下子激增了ajax請求與圖片請求 C.我的解決方法:讓前端的同學(xué)做一下分頁加載以及懶加載,不要在打開url的瞬間發(fā)出那么多請求回答3:
確實(shí)是這樣的,我也遇到過,發(fā)現(xiàn)不調(diào)用wv_viewerweb.removeAllViews();// wv_viewerweb.destroy();// wv_viewerweb = null;這個(gè)就不會(huì)有這問題
回答4:問題解決了嗎???我也掉坑里了,求大神的解決方法..............
