HarmonyOS 怎么删除cookie里某一项

API没看到有根据域名delete某一项cookie的方式。

原本想使用 webview.WebCookieManager.configCookieSync来实现

webview.WebCookieManager.configCookieSync('domainUrl', '=;Path=/;Domain=domainUrl')

但是发现这样只会追加cookie。请问该怎么实现替换某一个cookie的整个值,或者怎么实现删除特定的cookie?

HarmonyOS
2024-12-25 15:25:09
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple
// 将指定url下指定domain的cookie全都清除
public static clearCookieByDomain(sourceUrl: string = '', domain: string = '') {
  if (sourceUrl === '' || domain === '') {
    return
  }

  try {
    const cookieStr = CookieUtil.getCookie(sourceUrl)
    let cookieArray = cookieStr.split(';');
    const cookieKeys = cookieArray.map(item => {
      return item.split('=')[0].trim()
    })
    cookieKeys.forEach(key => {
      // tip: url、domain、key全都要对上才能删除指定cookie项, 且configCookieSync一次只能设置一个cookie项
      webview.WebCookieManager.configCookieSync(
        domain,
        CookieUtil.createExpireCookie(key, domain)
      )
    })
  } catch (err) {
    LogUtil.error("CookieUtil", err?.code, err.message, err.stack) // TODO:Senty上报
  }
}

public static createExpireCookie(key: string = '', domain: string = ''): string {
  if (key === '' || domain === '') {
    return ''
  }

  return key + '=' +
    '; Path=/' +
    '; Domain=' + domain +
    '; HttpOnly; Secure; Expires=Thu, 01 Jan 1970 00:00:00 GMT';
}
分享
微博
QQ
微信
回复
2024-12-25 17:05:45
相关问题
HarmonyOS 删除相册中的某一照片
360浏览 • 1回复 待解决
cookie的读、写和删除操作
577浏览 • 1回复 待解决
判断某一年是不是闰年
682浏览 • 1回复 待解决
HarmonyOS 如何只取消某一次的监听
232浏览 • 1回复 待解决
鸿蒙相册的最近删除文件夹在哪?
17988浏览 • 1回复 待解决