细数WebView那些坑
来源:互联网 发布:2016开淘宝店晚不晚 编辑:程序博客网 时间:2024/05/02 04:25
1、addJavascriptInterface不生效
出于安全考虑,为了防止Java层的函数被随便调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解
2、WebView导致的内存泄漏
方法1、动态创建WebView对象,并在onDestroy中 removeView(WebView) 并且 调用webView.destroy()
方法2、把使用WebView的Activity开启新的进程,在onDestroy的时候System.exit(0)粗暴释放进程所有内容
3、Https网页中http资源无法加载(图片无法正常显示)
先加入 setting.setBlockNetworkImage(false);
https链接中的http资源无法正常加载(图片无法显示)Android webview 从Lollipop开始webview默认不允许混合模式,https当中不能加载http资源,需要设置开启。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
setting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
4、网页中(链接不论http还是https的)https资源无法加载
这个是因为部分企业改的webView不认可你所使用的https的ssl证书,比如华为7.0的webview 不认可 "沃通CA"公司的https证书。
当网页中出现需要加载资源的时候,系统会调用WebViewClient的shouldInterceptRequest方法,这个方法的默认返回值为null,当为null的时候,会默认去自行加载资源,如果我们像做缓存自己下载,可以通过这个方法(这个方法可以做,比如广告拦截,logo替换),webview如果自行加载资源的时候,会检验证书,如果不认可证书,会调用onReceivedSslError方法,这个方法的默认调用是handle.cancel,也就是取消这个请求,我们将其改成handle.proceed,接受不被认可的证书,注意这里要加上证书的判断,不要认可所有的证书。
5、加载出的图片,很宽很高
是因为网页的图片组件没有限定最宽宽度,导致图片默认加载自身分辨率宽高
replace("<img", "<img style='max-width:100%;height:auto;'")
======待续====
- 细数WebView那些坑
- WebView的那些坑
- 细数lua那些坑
- 细数AVPlayer的那些坑
- 安卓WebView的那些坑
- Webview上传文件的那些坑
- webview遇到的那些坑与解决方法
- android webview 在项目中的那些坑
- Android WebView那些坑之上传文件
- Android WebView那些坑之上传文件
- Webview上传文件的那些坑
- 那些年遇到的坑----------Android Webview
- 实战 | 封装解决WebView的那些坑
- 关于android webview 的那些坑
- iOS 【偏方】获取webView高度那些坑!!!
- 封装解决WebView的那些坑
- WebView使用的那些坑-Https
- 那些年mui webview遇到的坑
- hdu 1013 Digital Roots
- openGL ES进阶教程(一)之粒子光束
- Picasso源码完全解析(五)--图片的获取(BitmapHunter)
- C++string类常用函数
- 指针和数组
- 细数WebView那些坑
- 2774 火烧赤壁(排序贪心)
- EPIC付款时供应商公司级别的冻结付款后付款消息为【找不到付款文件】调查
- Python遍历文件夹和读写文件的方法
- Markdown编辑器写博客
- vim--简单设置
- [李景山php] swoole 之 定时器
- 关于PO文本不支持多语言维护问题
- itk中的基本数学运算