WebView学习的总结————慕课网
来源:互联网 发布:java编程技术 编辑:程序博客网 时间:2024/06/15 06:31
1.简介
通过一个链接去加载网页的时候我们通常会使用一个WebView的控件,这里相信都是知道的!!
2.简单使用
相信webView.loadUrl();大家都很属性,但是只用此操作,会使得你的应用是打开系统的浏览器去打开url的,这时候我们怎么处理
webView.loadUrl("http://www.downxia.com/downinfo/70636.html#softdown");webView.setWebViewClient(new WebViewClient(){//让他在自己的activity中打开网页,@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return super.shouldOverrideUrlLoading(view, url);}
定义一个progressDialog来实现网页未加在出来时中间显示加载进度和温馨提示webView.setWebViewClient(new MyWebViewClient())private class MyWebViewClient extends WebViewClient{@Overridepublic void onPageStarted(WebView view, String url,Bitmap favicon) {//网页页面开始加载的时候if (progressDialog == null) {progressDialog=new ProgressDialog(MainActivity.this);progressDialog.setMessage("数据加载中,请稍后。。。");progressDialog.show();webView.setEnabled(false);// 当加载网页的时候将网页进行隐藏}super.onPageStarted(view, url,favicon);}@Overridepublic void onPageFinished(WebView view, String url) {//网页加载结束的时候//super.onPageFinished(view, url);if (progressDialog != null && progressDialog.isShowing()) {progressDialog.dismiss();progressDialog = null;webView.setEnabled(true);}}@Overridepublic boolean shouldOverrideUrlLoading(WebView view ,String url){ //网页加载时的连接的网址view.loadUrl(url);return false;} }
网页刷新 webView.reload();
3.下载文件
webView.setDownloadListener(new DownloadListener() {@Overridepublic void onDownloadStart(String url, String userAgent,String contentDisposition, String mimetype, long contentLength) {// 开启一个线程去下载对象System.out.println("<<<<<<<<<<<<<<<<"+url);if(url.endsWith(".apk")){//自己去下载new HttpThread(url).start(); //通过系统下载//Uri uri =Uri.parse(url);//Intent intent = new Intent(Intent.ACTION_VIEW,uri);//startActivity(intent);}}});
代码的注释很清楚就不说了
4.错误处理(网络404等)
webView.setWebViewClient(new WebViewClient(){//当没有网络,或者是连接错误的时候使用@Overridepublic void onReceivedError(WebView view, int errorCode,String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);view.loadUrl("file:///android_asset/error.html");//引人一个asset下的一个加载错误页面//也可是使用自定义的控件去显示 //webView.setVisibility(View.GONE);//提示控件.setVisibility(View.VISIBLE);}});
5.同步cookie
用户登录之后,我们通常在客户端报存用户的信息,我们可以把登录的cookie信息传给服务器,让服务器做一个表示,避免重新登录。那我们通过客户端和webView的cookie同步,
并在activity中设置:
6.WebView和js调用的混淆问题
我们在打包的时候混淆代码,打包完成之后会导致了js的方法调用失败。我们 只要在proguard.cfg文件夹中添加
-keep class com.example.webview.WebHost {
public <methods>;
}
7.在activity中使用,回退网页界面使用
//覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法 public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { webView.goBack(); //goBack()表示返回WebView的上一页面 return true; } finish();//结束退出程序 return false; }
//其实也就是改写了onBackPressed()方法
8.忽略证书
webView.setWebViewClient(new WebViewClient() { public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){//handler.cancel(); // Android默认的处理方式handler.proceed(); // 接受所有网站的证书//handleMessage(Message msg); // 进行其他处理 }});
demo的链接 http://www.oschina.net/code/snippet_2702417_55745
相关博文链接:
http://m.oschina.net/blog/673030
http://m.oschina.net/blog/673031
0 0
- WebView学习的总结————慕课网
- Anroid学习——Webview
- UI组件——WebView使用总结
- android 学习笔记3——WebView的使用
- WebView的简单使用——学习笔记
- 迷你浏览器——WebView学习
- Android学习笔记之——WebView
- Android Training学习笔记——WebView
- android学习笔记——webView
- android webview——webview播放音频/视频的问题
- Android WebView —— Java 与 JavaScript 交互总结
- Android WebView — Java与Js 交互总结
- 移动web相关学习(一)——WebView的学习(1)
- 移动web相关学习(二)——WebView的学习(2)
- 网络——WebView
- Android—WebView介绍
- Android—(WebView控件)
- 《Android开发从零开始》——38.WebView控件学习
- openssl 链接服务器
- HDU 5584 LCM Walk【搜索】
- Coursera 机器学习第9周作业1
- MYSQL 的几种join连接方式
- awk使用
- WebView学习的总结————慕课网
- [LeetCode]Flatten Binary Tree to Linked List
- Jquery实现Ajax同步请求
- marve register license
- myeclipse太慢
- nginx配置继承
- 数据结构--优先级队列
- 分布式数据库拆表拆库的常用策略
- 正则表达式(记不住可以查查)