WebView使用大全
转载请注明转自: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);
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- 一句话锁定MySQL数据占用元凶
- Qt For Android(安卓)数据库操作
- ContentProvider基本使用
- android Listview 软引用SoftReference异步加载图片
- Android数据库升级、降级、创建(onCreate() onUpgrade() onDowng
- Android(安卓)ORM数据库框架之-greenDao(二)
- 如何把批量数据导入到android 的 sqlite 数据库(更新中)
- Android(安卓)LCD(二):LCD常用接口原理篇