解决步骤:
1.登录接口缓存对应的session值
// 伪代码:
Headers headers = response.headers();
List<String> cookies = headers.values("Set-Cookie");
String session = cookies.get(0).toString();
CacheUtils.setCache("session", session);
2.WebView加载url之前,设置session
// 伪代码:
SessionUtils.synCookies(context, url);
webview.loadUrl(url);
public static void synCookies(Context context, String url) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.createInstance(context);
}
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
cookieManager.removeAllCookie();
cookieManager.setCookie(url, CacheUtils.getCache(context, "session"));
CookieSyncManager.getInstance().sync();
}
3.WebView加载