Android之WebView详解
来源:互联网 发布:新店能开淘宝直播吗 编辑:程序博客网 时间:2024/06/06 02:10
Android提供WebView来加载网页数据,也可以加载本地的资源文件。使用WebView有两种方式,一种是直接在XML布局文件中定义WebView然后在Activity中使用findviewById()找到这个控件,还有一种方式是使用代码直接new一个View对象然后添加到ViewGroup中。与WebView相关的类有两个,一个是WebSettings,该类可以对WebView的一些属性进行设置,比如是否显示网页的图片,js的支持,缩放,网页字体等;还有就是WebViewClient和Webchromclient,这前一个设置可以对js处理,点击超链接不打开本地浏览器,后一个设置对一些特殊的js支持,比如alert。下面对这些类里常用的一些方法做个介绍:
webView:
clearCache(boolean includeDiskFiles)//清除缓存
clearHistory() //清除历史 前进和后退
getSettings() //获取WebSetting
goBack() //返回上一页面
goForward() //前一页面
loadUrl(String url) //打开一个页面
reload() //重新加载当前页面
stopLoading() //停止加载
setScrollBarStyle(int style) //指定
loadData("HTMLString") //加载HTML
WebSettings:
setAllowFileAccess 启用或禁止WebView访问文件数据
setBlockNetworkImage 是否显示网络图像
setBuiltInZoomControls 设置是否支持缩放
setCacheMode 设置缓冲的模式
setDefaultFontSize 设置默认的字体大小
setDefaultTextEncodingName 设置在解码时使用的默认编码
setFixedFontFamily 设置固定使用的字体
setJavaSciptEnabled 设置是否支持Javascript
setLayoutAlgorithm 设置布局方式
setLightTouchEnabled 设置用鼠标激活被选项
setSupportZoom 设置是否改变焦点
WebViewClient:
doUpdate VisitedHistory 更新历史记录
onFormResubmission 应用程序重新请求网页数据
onLoadResource 加载指定地址提供的资源
onPageFinished 网页加载完毕
onPageStarted 网页开始加载
onReceivedError 报告错误信息
onScaleChanged WebView发生改变
shouldOverrideUrlLoading 控制新的连接在当前WebView中打开
WebChromeClient:
onCloseWindow 关闭WebView
onCreateWindow 创建WebView
onJsAlert 处理Javascript中的Alert对话框
onJsConfirm处理Javascript中的Confirm对话框
onJsPrompt处理Javascript中的Prompt对话框
onProgressChanged 加载进度条改变
onReceivedlcon 网页图标更改
onReceivedTitle 网页Title更改
onRequestFocus WebView显示焦点
ok,关键知识点就这些啦,关于web的API还是很丰富的,使用起来也很简单,下面就用一个具体的例子来看看:
public class MainActivity extends Activity {// 地址一定要加上 http:// 作为开头哦,不然会报错private String url = "http://blog.csdn.net/qq379454816/article/details/49248787";private String TAG = "MainActivity";private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 得到对象webView = (WebView) findViewById(R.id.webView);// 来一个WebViewclientWebViewClient client = new WebViewClient() {// 网页加载完毕@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);Log.e(TAG, "网页加载完毕!");}// 网页开始加载@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);Log.e(TAG, "网页开始加载!");}// 网页加载中,会多次调用@Overridepublic void onLoadResource(WebView view, String url) {super.onLoadResource(view, url);Log.e(TAG, "网页加载中!");}// 是否在本app中浏览超链接@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);// 消费掉事件return true;}};// 再来一个WebChromClient对象WebChromeClient chrome = new WebChromeClient() {};// 将两个client都设置到WebView上面webView.setWebChromeClient(chrome);webView.setWebViewClient(client);// 得到WebSetting对象WebSettings setting = webView.getSettings();// 支持缩放setting.setBuiltInZoomControls(true);setting.setBlockNetworkImage(true);setting.getJavaScriptEnabled();// 都搞定之后就显示网页啦webView.loadUrl(url);}@Overridepublic void onBackPressed() {super.onBackPressed();// 处理返回按钮if (webView.canGoBack()) {webView.goBack();}System.exit(0);}}
扫描关注我的微信公众号:
Demo下载
- android之WebView详解
- Android之WebView详解
- Android之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android WebView详解之文件下载
- Android WebView详解之自动登录
- android开发之WebView使用(非详解)
- Android WebView(一) WebView详解
- Android中WebView详解
- Android WebView 详解
- Android WebView应用详解
- Android中WebView详解
- Android WebView详解
- Android gdb 调试
- con
- Java中的两种多线程实现方式
- TexturePacker纹理打包打方法及技巧
- 判断当前app是不是default SMS app
- Android之WebView详解
- FastJson处理json数据时遇到一个问题
- 尾递归与Continuation(Haskell描述)未完成
- Sybase bcp命令详解
- Cocos2d-x内存管理之autorelease,addChild和removeFromParent
- [ JS 进阶 ] 基本类型 引用类型 简单赋值 对象引用
- MAC 安装Redis
- Java中String和StringBuffer,StringBuilder的区别小结
- android适配器Adapter