android 关于webview的小小总结

原创 2013年12月02日 16:54:25

小弟新开的淘宝店铺

店铺地址:https://shop172122426.taobao.com/?spm=2013.1.1000126.d21.JdNasm

type-c读卡器: https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-16590727134.4.ojyAeN&id=552870606536

苹果读卡器:    https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-16590727134.6.ojyAeN&id=552915271058


希望大家,多多关照



1.android提供了webView控件专门用来浏览网页。
然后在程序中装载webView控件,设置属性,比如:颜色、字体、要访问的网址等。通过loadUrl方法设置当前webView需要访问的网址。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。
 

2.下面是设置一些常用属性、状态的方法
WebSettings常用方法:
setAllowFileAccess 启用或禁止WebView访问文件数据
setBlockNetworkImage 是否显示网络图像
setBuiltInZoomControls 设置是否支持缩放
setCacheMode 设置缓冲的模式
setDefaultFontSize 设置默认的字体大小
setDefaultTextEncodingName 设置在解码时使用的默认编码

setDomStorageEnabled(true);// 用来支持百度地图显示
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显示焦点
 

3. android webView相关知识
@下面的代码通过loadUrl方法设置当前webView需要访问的网址:
mWebView=(WebView) findViewById(R.id.WebView01);
mWebView.loadUrl(“http://www.sogou.com”);
@在android中专门通过WebSettings来设置WebView的一些属性、状态等。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置:
WebSettings webSettings=mWebView.getSettings();//取得对象
WebSettings和WebView都在同一个生命周期中存在,当WebView被销毁后,如果再使用WebSettings,则会抛出异常。
@使用WebViewClient来完成在应用程序中自定义网页浏览程序:
WebViewClient是辅助WebView处理各种通知、请求等事件的类。通过WebView的setWebViewClient方法指定WebViewClient对象。
WebView可以通过覆盖WebViewClient方法来辅助WebView浏览网页:

public Boolean shouldOverrideUrlLoading
(WebView view,String url){view .loadUrl(url);return true;}


4. android webView实例
实例中使用EditText输入网址,用Button来确认连接,用webView显示网页内容。
这里使用了WebViewClient来辅助WebView处理一些事件,因此我们显示的网页都是在一个WebView控件中。可以通过goBack和goForward方法设置前进和后退,先检查是否可以前进和后退:

if((keyCode==keyEvent.KEYCODE_BACK)&&mWebView.canGoBack())
{
mWebView.goBack()//返回前一个页面
return true;
}                           


5、关于WebViewClient的方法解释
 
设置WebChromeClient子类,WebChromeClient会在一些影响浏览器ui交互动作发生时被调用,比如WebView关闭和隐藏、页面加载进展、js确认框和警告框、js加载前、js操作超时、webView获得焦点等等,详见WebChromeClient


    设置WebViewClient子类,WebViewClient会在一些影响内容喧嚷的动作发生时被调用,比如表单的错误提交需要重新提交、页面开始加载及加载完成、资源加载中、接收到http认证需要处理、页面键盘响应、页面中的url打开处理等等,详见WebViewClient
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url);
       return true;
  }






   在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。
  2)、public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error) {
handler.proceed();
}
重写此方法可以让webview处理https请求。
  3)、public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
            return super.shouldOverrideKeyEvent(view, event);
        }
    }
重写此方法才能够处理在浏览器中的按键事件。
   4、 public void onLoadResource(WebView view, String url) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onLoadResource ");
            }
            super.onLoadResource(view, url);
        }
在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。
5、 public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onPageStarted ");
            }
           if (url.endsWith(".apk")) {
                    download(url);//下载处理
             }
            super.onPageStarted(view, url, favicon);
        }
在页面加载开始时调用。
6、public void onPageFinished(WebView view, String url) {
public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onPageFinished ");
            }
            super.onPageFinished(view, url);
        }




            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onPageFinished ");
            }
            super.onPageFinished(view, url);
        }
在页面加载结束时调用。













                

[Android] WebView中拍照或从相册上传图片

WebView 上传图片, 想必很多人都碰到过这样的场景. 而且 WebView 在4.4前后的区别非常大, 比如对URL跳转的格式, 对JS的注入声明等等, 4.4以后的WebView 已经是chr...
  • stzy00
  • stzy00
  • 2016年10月16日 16:32
  • 4450

全面总结WebView遇到的坑及优化

作者:AWeiLoveAndroid 链接: https://www.jianshu.com/p/2b2e5d417e10 本文由作者授权发布。 关于WebView...
  • YiRanAiNi_
  • YiRanAiNi_
  • 2018年01月15日 10:06
  • 101

小小输入法使用小记

从网上得知,适合自定义、折腾的输入法非Rime和小小输入法了,前段时间接触了rime,也集成了小鹤双拼(音形方案),把其余不用的输入方式统统删除了,也罢整个界面调整为简体了,除了不能修改的之外。 以前...
  • liming0931
  • liming0931
  • 2016年12月04日 19:11
  • 3378

全面升级Android面试之webview面试题集

(一) webview常见的一些坑 1. Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用webView.addjavascriptIn...
  • lijizhi19950123
  • lijizhi19950123
  • 2017年09月09日 13:22
  • 270

Android 让WebView完美支持https双向认证(SSL)

这是@happyzhang0502   关于webview https的建议:  最近做一个安全级别比较高的项目,对方要求使用HTTPS双向认证来访问web网页。双向认证在android5....
  • kpioneer123
  • kpioneer123
  • 2016年05月24日 17:39
  • 8032

【Android】Web开发之使用WebView控件展示Web页面

Android提供了WebView控件展示web页面的能力,还可通过WebViewClient类辅助WebView处理各种通知、请求。 核心代码: mWebView = (WebView) fin...
  • oYunTaoLianWu
  • oYunTaoLianWu
  • 2013年10月24日 01:06
  • 24839

【专题】Android WebView缓存机制详解

今天分享给大家的是,关于App嵌入网页时候的缓存机制,即Android的WebView的缓存机制,此模块已经对笔者造成了很大的困扰,因此,在这里做一个专项研究分享给大家。如果有问题,请与笔者联系。 ...
  • heny2007
  • heny2007
  • 2015年11月20日 19:12
  • 1871

Android开发之WebView详细总结

WebView是android开发中专门用来加载网页的一种控件,它采用WebKit渲染引擎来显示网页包括控制网页的前进、后退、放大、缩小、执行文本、搜索等功能。WebKit是一种让网页浏览器绘制网页的...
  • li0978
  • li0978
  • 2016年10月11日 22:32
  • 1651

总结WebView的一些坑

总结使用WebView遇到的一些坑1. onJsAlert只调用一次的问题问题描述: 假设我们的WebView加载了一个有点击按钮弹窗功能的html页面 在webView中的处理:webView....
  • yun1185448859
  • yun1185448859
  • 2016年10月08日 15:47
  • 372

android webview 跨域问题

使用Android webView访问html页面,碰到ajax跨域访问时,仅仅在header中加入http { ...... add_header Access-Control-Allow-...
  • super_spy
  • super_spy
  • 2016年10月09日 14:25
  • 5140
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 关于webview的小小总结
举报原因:
原因补充:

(最多只允许输入30个字)