webview cookie设置

本文介绍在Android中使用WebView时如何管理Cookie,包括创建Cookie实例、设置Cookie接受策略、手动处理Cookie覆盖逻辑等,并讨论了不同Android版本间的差异及服务器发送Cookie的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CookieSyncManager.createInstance(_context);
CookieManager manager = CookieManager.getInstance();
manager.setAcceptCookie(true);
// manager.removeSessionCookie();
StringBuilder builder = null;
for (HttpCookie cookie : allCookies) {
builder = new StringBuilder();
builder.append(cookie.getName());
builder.append("=");
builder.append(cookie.getValue());
builder.append("; path=");
builder.append(cookie.getPath());
builder.append("; domain=");
builder.append(cookie.getDomain());
manager.setCookie(XidibuyConstants.DOMAIN_XIDIBUY,
builder.toString());
Log.e(TAG, "cookie:" + builder);
}
CookieSyncManager.getInstance().sync();

注意:

1.// manager.removeSessionCookie(); 在某些android版本中会导致cookie保存失败。已知4.4没有问题,4.3有问题。

2.服务器发送cookie,有时候希望发送一些值为deleted的cookie来覆盖已存在的cookie。

但是有些服务器为了节省时间,会将发送过来的cookie只包含key和value,不包含path和domain。这种情况下,webview会认为是两个cookie,不会覆盖已存在的cookie。

webview保存cookie时,需要覆盖的必需是key,path和domain都相同才会覆盖。

所以一定要服务器发送包含key,path,domain的cookie否则在保存时就需要手动处理。

转载于:https://www.cnblogs.com/jason-blog/p/4239605.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值