需求描述:
将app登陆接口返回的TGC信息写入webview的cookie当中
技术名词
CAS、Cookie、TGC
解决方案
我们都知道okhttp的CookieJar接口为我们获取网络请求过程中cookie信息提供了方法。android里面的CookieManager是用来给WebView提供原生管理cookie的办法的。这里我们我们打通上述问题的关键就是使用CookieManager来实现原生方法中登陆返回的cookie写入CookieManager中来达到WebView可以直接使用写入的cookie信息,避免在webview中二次登陆
引入:
Cookie 什么是cookie:最简单理解就是由http衍生出来的一种特殊的浏览器的缓存,特点是具有时效性、账户相关性、存储在客户端等。
作用:作为客户端的用户认证的通行证,比如服务端可以通过cookie来区分到底是哪个用户。
Android
中Cookie的管理相关:说到cookie的管理,其实本质上就是数据的存储问题。在早期的cookie是由CookieSyncManager进行管理的,但是在API
21 之后CookieSyncManager被抛弃了,换成了CookieManager来进行管理。Android中Cookie的存储:项目中使用 WebView 其实会自动将 Cookie 保存在本地数据库中。保存是路径为
data/data/package_name/app_WebView/Cookies 虽然不是 .db 结尾的,实际就是一个 .db 文件CookieSyncManager
使用CookieSyncManager同步cookie数据: