android的webview是如何使用的网络上一搜索就是一大页面的资料。通常我们通过webview来访问web页面都是在网络的情况下,一旦没有网络就会显示"无法找到该网页"的信息,这样会暴露我们的连接,所以我们需要一个有好的提示,并且不会暴露链接的方法。这时候WebViewClient的onReceivedError方法就派上了用场!废话不多说直接上代码。

1、创建android的工程,编写main.xml布局代码

 

            
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     xmlns:tools="http://schemas.android.com/tools" 
  3.     android:layout_width="match_parent" 
  4.     android:layout_height="match_parent" > 
  5.  
  6.     <WebView 
  7.         android:id="@+id/webview" 
  8.         android:layout_width="fill_parent" 
  9.         android:layout_height="fill_parent" /> 
  10.  
  11. RelativeLayout> 

2、编写activity代码

 

            
  1. package com.xzw.test.webview; 
  2.  
  3. import android.os.Bundle; 
  4. import android.app.Activity; 
  5. import android.graphics.Bitmap; 
  6. import android.util.Log; 
  7. import android.view.Menu; 
  8. import android.webkit.WebView; 
  9. import android.webkit.WebViewClient; 
  10.  
  11. public class MainActivity extends Activity { 
  12.      
  13.     private static final String TAG = MainActivity.class.getSimpleName(); 
  14.      
  15.     private String errorHtml = ""
  16.     WebView mWebView; 
  17.      
  18.     @Override 
  19.     public void onCreate(Bundle savedInstanceState) { 
  20.         super.onCreate(savedInstanceState); 
  21.         setContentView(R.layout.activity_main); 
  22.         errorHtml = "

    Page not find!

    "
  23.         mWebView = (WebView) findViewById(R.id.webview); 
  24.         mWebView.getSettings().setJavaScriptEnabled(true); 
  25.          
  26.         mWebView.loadUrl("http://www.baidu.com"); 
  27.         Log.i(TAG, "--onCreate--"); 
  28.          
  29.         //设置web视图的客户端 
  30.         mWebView.setWebViewClient(new MyWebViewClient()); 
  31.     } 
  32.  
  33.      
  34.     @Override 
  35.     protected void onResume() { 
  36.       
  37.         super.onResume(); 
  38.            Log.i(TAG, "--onResume()--"); 
  39.     } 
  40.       
  41.     public class MyWebViewClient extends WebViewClient{ 
  42.          
  43.         @Override 
  44.         public boolean shouldOverrideUrlLoading(WebView view, String url) { 
  45.               Log.i(TAG, "-MyWebViewClient->shouldOverrideUrlLoading()--"); 
  46.              view.loadUrl(url); 
  47.             return true
  48.         } 
  49.          
  50.         @Override 
  51.         public void onPageStarted(WebView view, String url, Bitmap favicon) { 
  52.               Log.i(TAG, "-MyWebViewClient->onPageStarted()--"); 
  53.             super.onPageStarted(view, url, favicon); 
  54.         } 
  55.          
  56.         @Override 
  57.         public void onPageFinished(WebView view, String url) { 
  58.               Log.i(TAG, "-MyWebViewClient->onPageFinished()--"); 
  59.             super.onPageFinished(view, url); 
  60.         } 
  61.          
  62.          
  63.         @Override 
  64.         public void onReceivedError(WebView view, int errorCode, 
  65.                 String description, String failingUrl) { 
  66.             super.onReceivedError(view, errorCode, description, failingUrl); 
  67.              
  68.               Log.i(TAG, "-MyWebViewClient->onReceivedError()--\n errorCode="+errorCode+" \ndescription="+description+" \nfailingUrl="+failingUrl); 
  69.                  //这里进行无网络或错误处理,具体可以根据errorCode的值进行判断,做跟详细的处理。 
  70.                   view.loadData(errorHtml, "text/html""UTF-8"); 
  71.               
  72.             
  73.         } 
  74.     } 

代码就是这样的,以上的代码只是做个笔记,存在很多不足的地方,希望大家能够根据具体情况进行处理。

上面代码中,loadData显示中文可能会出现乱码的情况。解决办法如下

 

            
  1. mWebView.getSettings().setDefaultTextEncodingName("UTF-8");  //设置默认的显示编码 

 

无网络时候或网络出错的情况!

 

android之webview无网络情况下简单处理_第1张图片 android之webview无网络情况下简单处理_第2张图片 android之webview无网络情况下简单处理_第3张图片

 

    很简单的一个demo!以上有不足的地方请大家多多指教!

 

 

更多相关文章

  1. Android的开源隐忧:品牌稀释 代码分裂
  2. linux和windows平台下,如何下载android sdk的源代码
  3. Android应用程序内部启动Activity过程(startActivity)的源代码分析
  4. [Android] 开心消消乐代码(写的比较简单)
  5. android 图片处理 resize 探秘(图片缩放、压缩问题)
  6. Android设置代理访问网络Proxy
  7. 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 缓存策略 | LruC
  8. Android 中判断网络连接和GPS是否可用及HTTPCLIENT使用
  9. Android视频图片缩略图的获取

随机推荐

  1. Eclipse里查看Android源码
  2. 设计一个框架化框架 Frontia
  3. Android组件相关概念总结
  4. Android(安卓)背景之9pitch图片
  5. Android应用程序线程的消息循环模型
  6. 隐式意图匹配规则
  7. ANDROID中点击事件的实现方式
  8. iPod Touch也将支持运行Android系统
  9. 设计模式~单例-[Android_YangKe]
  10. Android(安卓)传感器开发 完全解析