一、初识webview
想了解一个类是用来干什么的,有什么用,最好的方法就是研究它的源码,源码中通常在前面写了大量的注释,接下来我们看下webview的源码。
<p>A View that displays web pages. This class is the basis upon which you
* can roll your own web browser or simply display some online content within your Activity.
* It uses the WebKit rendering engine to display
* web pages and includes methods to navigate forward and backward
* through a history, zoom in and out, perform text searches and more.</p>
* <p>Note that, in order for your Activity to access the Internet and load web pages
* in a WebView, you must add the {@code INTERNET} permissions to your
* Android Manifest file:</p>
只贴出了部分源码,具体可以去看详细官方文档()简而言之,webview就是android上的浏览器,能实现PC端一样的浏览网页的功能,在android中以一个控件的方式来让我们使用,接下来讨论如何使用它。
二、webview的用法
注意:不要忘了添加权限 <uses-permission android:name="android.permission.INTERNET"/>
1.最简单的用法
WebView wv = new WebView(mContext);
wv.loadUrl("www.baidu.com");
跟其他view控件一样的用法,也可以在xml中使用。
2.loadUrl其它方法
loadUrl可以加载本地和网页,loadDada则是对本地的数据进行加载,来分别看下如何使用它好了;
* - loadUrl(String url); 只要PC能访问的url,粘贴到这里都能访问
* - loadUrl(String,Map<>); 就是访问那种post请求中携带参数的url地址;
* - loadData(String data,String mimeType,String encoding);
稍微有点html知识的人都应该很容易了解这个方法的实际用途; 参数data的意思 == html中的document内容,mimeType == "text/html;charset=UTF-8" ;encoding = null;
loadDataWwithBaseURL(null, data, "text/html", "UTF-8", null);
3.View/ViewGroup的功能
因为最终继承至ViewGroup,所以有一些LayoutParam属性可以设置,这里举个简单的使用方法;
<span style="white-space:pre"> </span>LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
params.setMargins(10, 10, 10, UIUtils.dp2px(60));
mWebView.setLayoutParams(params);
隐藏滚动条
//隐藏滚动条
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
其它属性
//翻页
mWebView.pageDown(false);
mWebView.pageUp(false);<pre name="code" class="java"> //滚动
mWebView.scrollTo(x,y);
mWebView.getScrollY(); 获取当前位置<pre name="code" class="java"> mWebView.getScrollX();
4.WebSettings
<span style="white-space:pre"> </span>WebSettings ws = mWebView.getSettings();
WebSettings的一些常见用法
<span style="white-space:pre"> </span>setAllowFileAccess 启用或禁用WebView访问文件数据
setBlockNetworkImage 是否显示网络图像
setBuiltInZoomControls 设置是否支持缩放
setCacheMode 设置缓冲的模式
setDefaultFontSize 设置默认的字体大小
setDefaultTextEncodingName 设置在解码时时候用的默认编码
setFixedFontFamily 设置固定使用的字体
setJavaScriptEnabled 设置是否支持Javascript
setLayoutAlgorithm 设置布局方式
setLightTouchEnabled 设置用鼠标激活被选项
setSupportZoom 设置是否支持变焦
setUseWideViewPort 设置适应手机屏幕
setLoadWithOverviewMode 设置跟随view宽度动态调整
5.WebClient
doUpdateVisitedHistory | 更新历史记录 |
onFormResubmission | 应用程序重新请求网页数据 |
onLoadResource | 加载指定地址提供的资源 |
onPageFinished | 网页加载完毕 |
onPageStarted | 网页开始加载 |
onReceivedError | 报告错误信息 |
onScaleChanged | WebView发生改变 |
shouldOverrideUrlLoading | 控制新的连接在当前WebView中打开 |
//隐藏滚动条
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
//隐藏滚动条
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
//隐藏滚动条
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);