WebViewWebView的做用WebView经常使用方法WebView资源加载WebView漏洞html
各类技术都有各自的优缺点,因此结合各自的有点去作Hybrid混合应用会好一点。WevView是一个基于webkit殷勤、展示web页面的空间。Android在4.4开始直接使用了Chrome。web
加载一个页面缓存
WebView的状态网络
WebView网页的上一个和下一个切换app
WebView清除缓存数据函数
WebSettings经常使用方法说明布局
WebView缓存设置url
WebView在加载html页面时,会在/data/data/packagepath目录下生成database与cahce两个文件夹,请求的URL记录保存在WebViewCache.db,而URL的内容保存在WebViewCache文件夹下spa
设置WebViewClient3d
设置WebViewChromeClient
Native和JavaScript相互调用
缓存机制
WebView资源预加载
能够在Android 的BaseApplication里初始化一个WebView对象(用于加载经常使用的H5页面资源),当需使用这些页面时再从BaseApplication里取过来直接使用
WebView的漏洞
WebView的主要漏洞有三类:任意代码执行漏洞、密码明文存储漏洞、域控制不严格漏洞
任意代码漏洞
addJavascriptInterface接口 4.2开始不用考虑这个问题 4.2开始规定了对被调用的函数要以@JavascriptInterface进行注解避免漏洞攻击
内置导出的searchBoxJavaBridge_对象
内置导出的accessibility和accessibilityTraversalObject对象
WebView默认开启密码保存功能 当用户输入密码会弹出提示框询问用户是否保存密码,密码明文保存在/data/data/pcakgename/database/webview.db中,有盗取风险
解决方案 调用WebSettings#setSavePassword(false)关闭密码保存
域控制不严格漏洞
A 应用能够经过 B 应用导出的 Activity 让 B 应用加载一个恶意的 file 协议的 url,从而能够获取 B 应用的内部私有文件,从而带来数据泄露威胁