身处江湖中,已非少年郎
回头一看,发现我最早的一篇WebView
博文始于2017年初~ 不知不觉已过去多年,而当时的那篇 Blog 也成为了我访问量最高的一篇,或许也帮助了不少当年如我一样的少年 ~
随着时间悄然而逝,在开发中也总会遇到各式各样的问题,不知不觉的就写了挺多各场景下遇到的问题和解决方式,为了帮助更多的boy,所以特意抽了半天时间,听着歌(大田后生仔)整合一下我已知的、有限的知识 ~
我将使用WebView 的经验主要记录为以下三个阶段 或者 三个过程,希望可以帮到你
基础功能(加载监听、多页面处理、数据捕获)
功能
解决了哪些问题?
- 动态捕获
WebView
Title 用来更改我们Title - 通过返回键关闭当前 activity
- 解决当
WebView
内部页面多次跳转之后,最终退到起始页的时候,无法退出当前Activity WebView
页面栈遇上重定向,导致用户多次返回,针对此问题进行的交互优化- 解决
WebView
内存泄漏 - 简单、成熟的使用
Webview
(完整代码)
进阶功能(双端交互、定制 user-agent、常见问题)
Android
调用Js
Js
调用Android
header
传值- 拦截
HTML
页面中的点击事件 Android
与H5
交互弹框无效
user-agent
获取与设置user-agent
数据分析
- 未允许
Js
交互 - 执行交互的类内方法,未声明
@JavascriptInterface
注解 - 未绑定一个
java
对象到webview
- 如上述设置都已拥有,Js调用仍失败,报找不到该方法
- 未声明权限 !
- 查看是否被混淆!
webview
无法重定向android
与H5
交互调用js
方法无效问题
实战场景(图片传递、存储)
在双端交互中经常会遇到关于图片的双向传递、存储场景,一般我们可以将图片转为base64
进行传递,但是如果仅是需要将 WebView
中的图片保存到客户端的话,WebView
其实已经提供了对应方式
了解(WebView API 概括)
WebSettings
配置类- 常用API
- 常用方法
- 注意事项