主要观点总结
本文介绍了作者开发过程中对WebView的一些实践思路,包括WebView的基础封装、缓存管理、生命周期回调、复用池回收复用、网页秒开、图片懒加载、白屏检测等。文章还分享了WebView独立进程及跨进程通信的实现,并提供了相应的源码。作者通过分享这些思路,旨在提高WebView的加载速度和性能,提升用户体验。
关键观点总结
关键观点1: WebView基础封装
包括设置WebSettings、WebUtil工具类以及WebChromeClient和WebViewClient的封装。
关键观点2: WebView缓存管理
使用Glide加载图片,实现网页资源的缓存管理。
关键观点3: WebView生命周期回调
在BaseWebView中实现了onResume、onPause、onDestroy等生命周期方法。
关键观点4: WebView复用池回收复用
创建WebViewPool类,实现WebView的复用和回收。
关键观点5: 网页秒开和图片懒加载
使用本地模板和jquery.lazyload.js实现网页秒开和图片懒加载。
关键观点6: 白屏检测
通过检测WebView截图中的像素点来实现白屏检测。
文章预览
本文作者 作者: 孙先森Blog 链接: https://juejin.cn/post/7143025767268810759 本文由作者授权发布。 1 前言 来掘金的第一篇博客,分享下自己开发过程中对 WebView 的一些实践思路。后续也会随缘在掘金更新博客,方便自己回忆的同时也能够跟大家互相交流。 WebView 系列将从零开始构建一个 Demo,所以一些不重要的代码写的略为粗糙,重在分享思路,本次博客源码会放在本系列博客最后一篇里,如有设计不足,请大家多多指教 🙏 🙏 🙏 2 新建工程 用 AS 新建一个 Demo 工程,并且创建一个 Module 用于存放 WebView 相关代码,app 工程依赖 module_web 。 3 WebView 基础封装 基础设置 WebSettings 新建一个工具类对 WebView 进行一些基础设置,后面用。 object WebUtil { /** * 获取 WebView 缓存文件目录 */ fun getWebViewCachePath (context: Context ) : String{
………………………………