HarmonyOS 鸿蒙Next webview.WebCookieManager不管理同名cookie吗
HarmonyOS 鸿蒙Next webview.WebCookieManager不管理同名cookie吗
1、webview.WebCookieManager不管理同名cookie吗?唯一的变化是时间戳的变化
2、webview.WebCookieManager不会处理deleted、Max-Age = 0的cookie吗?
3、如何解决同名cookie在webview.WebCookieManager中不断累加的问题呢?
下面是一段http的cookie同步到webview.WebCookieManager中,其中有两段xys_fd_id=2f880f92dec064e5c0a178c0da923b98数据,区别在于时间戳上的变化,理论上是webview.WebCookieManager取用最新时间戳的cookie即可。
acw_tc=820edd3e67c71b9e98fa36029cc02c01f102423066b82e33b28977d3fed122d1,path=/
,HttpOnly
,Max-Age=1800
PHPSESSID=2f880f92dec064e5c0a178c0da923b98
,path=/
,touchurl=http%3A%2F%2Fbeta.xinhulu.com%2FAppbase%2FgetLatestUserProtocol
,expires=Fri, 23-Aug-2024 09:44:47 GMT
,Max-Age=604800
,path=/
,domain=xinhulu.com
,_xys_fd_id=2f880f92dec064e5c0a178c0da923b98
,expires=Sun, 15-Sep-2024 09:44:47 GMT
,Max-Age=2592000
,path=/
,domain=xinhulu.com
,SERVERID=0d9b26c31de47684c9a1db1e3c849df5|1723801487|1723801487
,Path=/
,SERVERCORSID=0d9b26c31de47684c9a1db1e3c849df5|1723801487|1723801487
,Path=/
,SameSite=None;
_xys_fd_id=2f880f92dec064e5c0a178c0da923b98
,expires=Sun, 15-Sep-2024 09:45:05 GMT
,Max-Age=2592000
,path=/
,domain=xinhulu.com
,SERVERID=0d9b26c31de47684c9a1db1e3c849df5|1723801505|1723801487
,Path=/
,SERVERCORSID=0d9b26c31de47684c9a1db1e3c849df5|1723801505|1723801487
,Path=/
,SameSite=None
更多关于HarmonyOS 鸿蒙Next webview.WebCookieManager不管理同名cookie吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
对于您提的三个问题做以下回复:
- 设置同名字段cookie会覆盖之前的值 ,看看是不是域名不同
- 不会自动处理
- 可以使用clearAllCookiesSync清除,但同名cookie会自动覆盖的
参考以下demo验证,并未发现不会覆盖的情况:
import { webview } from '@kit.ArkWeb'
@Entry
@Component
struct WebComponent {
controller: webview.WebviewController = new webview.WebviewController();
headers : Array<webview.WebHeader> = [{ headerKey : "msg",headerValue : 'hello'}];
build() {
Column() {
Button('configCookieSync1')
.onClick(() => {
try {
webview.WebCookieManager.configCookieSync('https://www.example.com', 'a=b,c=d,e=f');
} catch (error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
Button('configCookieSync2')
.onClick(() => {
try {
webview.WebCookieManager.configCookieSync('https://www.example.com', 'a=b,c=mm,e=f');
} catch (error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
Button('fetchCookieSync')
.onClick(() => {
try {
let value = webview.WebCookieManager.fetchCookieSync('https://www.example.com');
console.log("fetchCookieSync cookie = " + value);
} catch (error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
Column() {
Web({ src: 'www.example.com', controller: this.controller })
.width('100%')
.height('100%')
}
.layoutWeight(1)
}
}
}
更多关于HarmonyOS 鸿蒙Next webview.WebCookieManager不管理同名cookie吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
configCookieSync 每次只能设置一条cookie吧!
在HarmonyOS鸿蒙Next版本中,webview.WebCookieManager
的行为可能与传统的Web浏览器或某些其他平台存在差异。具体而言,关于是否管理同名cookie的问题,HarmonyOS的WebCookieManager
设计可能遵循特定的策略或限制。
通常情况下,WebCookieManager负责处理cookie的存储、检索和删除等操作。然而,在处理同名cookie时,它可能遵循“最新优先”原则,即保留最新的cookie值,或者根据cookie的其他属性(如路径、域、安全标志等)来决定哪个cookie应该被使用。
如果WebCookieManager
在你的应用中不管理同名cookie,可能是由于以下几个原因:
- cookie的属性差异:同名cookie可能因为路径、域或其他属性的不同而被视为不同的cookie。
- 策略限制:HarmonyOS可能对cookie管理有特定的策略限制,导致同名cookie不被正确处理。
- 代码实现问题:检查你的代码是否正确使用了
WebCookieManager
的API,以及是否有其他逻辑影响了cookie的管理。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html