Android網絡狀態獲取和WebView的加載完成,加載失敗監聽
在我們的項目中,經常需要對WebView中加載的內容是否完成或者是否加載失敗進行判別,這兩天寫的一個小應用就涉及到了這一點。
WebView的實質就是loadUrl,所以前提是設備接入網絡,那么這個如何判斷呢?看代碼吧:
// 網絡狀態
public boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null) {
return mNetworkInfo.isAvailable();
}
}
return false;
如果網絡正常就加載WebView,否則就提示用戶接入網絡。
在使用WebView的過程中,我發現在當前Activity加載網頁之外,還會打開瀏覽器加載我們的URL。需要在
wvLast.setWebViewClient(new WebViewClient() {
// ... ...
}
中進行以下復寫:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
// return super.shouldOverrideUrlLoading(view, url);
view.loadUrl(url);
return true;
}相應的,網頁加載完成與加載失敗也是Google已經提供好的,我們復寫我們需要的操作就可以了,也是在setWebViewClient之中:
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
// super.onPageFinished(view, url);
finish();
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
Toast.makeText(onSave.this, "同步失敗,請稍候再試", Toast.LENGTH_SHORT)
.show();
}</pre> <p><br />
</p>
要注意的是,網頁加載失敗也是加載完成的一種,就是加載進度也是100,這樣onReceivedError就顯得不可或缺了。
先寫到這兒吧。
轉載請注明出處:周木水的CSDN博客 http://blog.csdn.net/zhoumushui
我的GitHub:周木水的GitHub https://github.com/zhoumushui
本文由用戶 4e48 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!