一、概述
webview是android承载网页的一个控件,使用的是android系统自带的webkit浏览器。
二、使用
跟其他控件使用一样,webview可以以标签或者动态生成。
1、loadUrl(String url)
使用此方法加载网页url 加载网页
2、addJavascriptInterface(Object o, String name)
android 承载 网页的时候,可能需要和网页交互,这时候此方法派上用场了。他提供给这个注入对象的方法,通过javascript作为中间桥梁传给网页,网页接收到android传输的对象,操作对象实现互通。使用此方法的前提是需要webView.getSettings().setJavaScriptEnabled(true),允许js注入。
三、漏洞
1、布局文件将webview写入容器的时候,记得要回收,不然会造成内存泄露。可以在页面销毁的时候 把 webview置空通知GC回收。(原因是开启了子线程)
2、使用webview的时候,系统会单独开启一个进程,后台耗电。如果不销毁回收的话,会造成耗电损失。
3、addJavascriptInterface安全漏洞问题。sdk 17 以前没有限制 使用 addJavascriptInterface对象方法,远程攻击者可通过java反射机制API利用漏洞执行任意java对象的方法,攻击或者获取隐私。解决办法是 sdk 17及以后通过@addJavas