转载请注明转自:noyet12的博客
博客原址:http://blog.csdn.net/u012975705/article/details/49814587

简单介绍

WebView是Android中能加载显示网页的控件,可以将其视为一个浏览器。在使用WebView之前必须在AndroidManifest.xml文件中添加权限:

<uses-permission android:name="android.permission.INTERNET" />

否则会出现Web page not available错误。

WebView的实现方式

在Android中WebView有两种实现方式:一是在要Activity中实例化WebView组件

WebView webView = new WebView(this);

二是在布局文件中声明WebView,然后在Activity中实例化WebView

<WebView  android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white"/>
webview = (WebView) findViewById(R.id.webview); 

WebView基本设置的方法

    /** 支持javascript */    webview.getSettings().setJavaScriptEnabled(true);    /** 设置可以支持缩放 */    webview.getSettings().setSupportZoom(true);    /** 设置出现缩放工具 */    webview.getSettings().setBuiltInZoomControls(true);    /** 扩大比例的缩放 */    webview.getSettings().setUseWideViewPort(true);    /** 清除浏览器缓存 */    webview.clearCache(true);    /** 自适应屏幕 */    webview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);    /** 优先使用缓存 *、 webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); /** 不使用缓存: */    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

WebView数据加载方法详解

(1)loadUrl()
直接加载网页。
使用方式:

    //WebView加载web资源    webView.loadUrl("http://baidu.com");    //覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开    webView.setWebViewClient(new WebViewClient(){        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            /** 返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器 */            view.loadUrl(url);            return true;        }    });    /** 判断页面加载过程 */    webView.setWebChromeClient(new WebChromeClient() {        @Override        public void onProgressChanged(WebView view, int newProgress) {            if (newProgress == 100) {                /** 网页加载完成 */            } else {                /** 加载中 */            }        }    });

(2)loadData
用来装载URI格式的数据,但不能加载网络内容。
使用方式:

webview.loadData(content, "text/html", "utf-8")

在使用loadData方法加载数据的时候,有可能会出现乱码,这时候可以使用loadDataWithBaseURL方法来加载数据,能过避免中文乱码

(3)loadDataWithBaseURL

loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)

在使用loadDataWithBaseURL时,需要注意的就是 baseUr:虽然API上写的是要传一个Url,但我在用时,发现传一个Url并不可以,我发现这个就是一个标志位,用来标志当前页面的Key值的,而historyUrl就是一个value值,在加载时,它会把baseUrl和historyUrl传到List列表中,当作历史记录来使用,当前进和后退时,它会通过baseUrl来寻找historyUrl的路径来加载historyUrl路径来加载历史界面,需要注意的就是history所指向的必须是一个页面,并且页面存在于SD卡中或程序中(assets),loadDataWithBaseURL,它本身并不会向历史记录中存储数据,要想实现历史记录,需要我们自己来实现。
一般使用方式:

    webview.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. 一句话锁定MySQL数据占用元凶
  3. Qt For Android(安卓)数据库操作
  4. ContentProvider基本使用
  5. android Listview 软引用SoftReference异步加载图片
  6. Android数据库升级、降级、创建(onCreate() onUpgrade() onDowng
  7. Android(安卓)ORM数据库框架之-greenDao(二)
  8. 如何把批量数据导入到android 的 sqlite 数据库(更新中)
  9. Android(安卓)LCD(二):LCD常用接口原理篇

随机推荐

  1. Android(安卓)Data Binder 的一个bug
  2. Android中使用ormlite实现持久化--HelloO
  3. Android中使用listview实现qq/微信好友列
  4. 《Android/OPhone 开发完全讲义》已出版,
  5. Android中UI主线程与子线程
  6. android读取sim卡联系人
  7. Android(安卓)解析jwt遇到java.lang.Ille
  8. 在做Android中GIF遇到不能显示的问题
  9. 图文详解Android属性动画
  10. Android高手应该精通哪些内容?