Android網絡狀態獲取和WebView的加載完成,加載失敗監聽

4e48 11年前發布 | 137K 次閱讀 WebView Android開發 移動開發

在我們的項目中,經常需要對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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!