最近项目里有使用webview和js交互的问题,但在进行加载前需要处理一个用户信息cookie同步问题,在网上找了下并记录下来:
1.登录时从服务器的返回头中取出cookie,网络请求方式不同取cookie的方式也不同。不懂的可以自行百度或google
2.将cookie同步到WebView中
(提示:同步cookie需要在webview加载指定的url之前同步,否则是不能同步成功的)
/**
* 将cookie同步到WebView
* @param url WebView要加载的url
* @param ManagerTokenCookie 要同步的cookie里的值(根据后台需求取,这里只是列出)
* @return true 同步cookie成功,false同步cookie失败
*/
public boolean syncCookie(String url,String ManagerTokenCookie) {
CookieSyncManager mCookieManager = CookieManager.getInstance();
mCookieManager.setAcceptCookie(true);
mCookieManager.setCookie(url, "ManagerToken="+ManagerTokenCookie);//以"key=value"形式作为cookie即可
String newCookie = mCookieManager.getCookie(url);
//在API 21之后,WebView实现了自动同步Cookie,不需要手动同步,所以,使用时可以添加版本判断;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.createInstance(mContext).sync();
}
return TextUtils.isEmpty(newCookie)?false:true;
}