Web组件设置cookie是否提供通过域名去设置cookie?

当前的web组件cookie设置,只能通过具体网址去设置,没看到通过域名去设置的方法。

HarmonyOS
2024-11-06 08:55:28
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

​给host地址设置了cookie,之后的其他子地址也都会拥有对应的cookie。

以下是验证demo:

新建工程,在src/main/module.json5中添加网络权限:​

"module": { 
  "requestPermissions": [{"name": 'ohos.permission.INTERNET'}], 
  ...... 
}

替换Index.est文件内容:

// xxx.ets 
import web_webview from '@ohos.web.webview' 
import business_error from '@ohos.base' 
 
@Entry 
@Component 
struct WebComponent { 
  controller: web_webview.WebviewController = new web_webview.WebviewController(); 
 
  build() { 
    Column() { 
      Button('fetchCookieSync') 
        .onClick(() => { 
          try { 
            //打印https://developer.huawei.com/ 的cookie 
            let value = web_webview.WebCookieManager.fetchCookieSync('https://developer.huawei.com/'); 
            console.log("fetchCookieSync host cookie = " + value); 
          } catch (error) { 
            let e:business_error.BusinessError = error as business_error.BusinessError; 
            console.error(`ErrorCode: ${e.code},  Message: ${e.message}`); 
          } 
 
          try { 
            //打印https://developer.huawei.com/consumer/cn/的cookie 
            let value = web_webview.WebCookieManager.fetchCookieSync('https://developer.huawei.com/consumer/cn/'); 
            console.log("fetchCookieSync cookie = " + value); 
          } catch (error) { 
            let e:business_error.BusinessError = error as business_error.BusinessError; 
            console.error(`ErrorCode: ${e.code},  Message: ${e.message}`); 
          } 
        }) 
 
      Web({ src: 'https://developer.huawei.com/', controller: this.controller }) 
        .domStorageAccess(true) 
        .onAppear(()=>{ 
          try { 
            // 设置多个cookie值时用','隔开,设置单个cookie值时不需要。 
            web_webview.WebCookieManager.configCookieSync('https://developer.huawei.com', 'a=b,c=d,e=f'); 
          } catch (error) { 
            let e:business_error.BusinessError = error as business_error.BusinessError; 
            console.error(`ErrorCode: ${e.code},  Message: ${e.message}`); 
          } 
        }) 
        .onPageBegin((event) => { 
          if (event) { 
            console.log('url:' + event.url) 
          } 
        }) 
    } 
  } 
}

​这里仅为https://developer.huawei.com/ 域名添加了cookie,a=b,c=d,e=f点击fetchCookieSync按钮查看日志可看到,https://developer.huawei.com/consumer/cn/也是有cookie :a=b,c=d,e=f的。

https://developer.huawei.com/consumer/cn/这个地址是https://developer.huawei.com/ 中点击开发者按钮进入的页面。

configCookieSync 为指定url设置cookie的值。相关链接:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-webview-V5#configcookiesync11

fetchCookieSync 获取指定url对应cookie的值。相关链接:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-webview-V5#fetchcookiesync11

分享
微博
QQ
微信
回复
2024-11-06 18:00:58
相关问题
Web组件通过WebCookieManager设置获取cookie
2155浏览 • 1回复 待解决
HarmonyOS 用域名设置cookie无效
44浏览 • 1回复 待解决
HarmonyOS Web cookie设置咨询
244浏览 • 1回复 待解决
http接口如何设置cookie
1959浏览 • 1回复 待解决
如何批量设置多个cookie
485浏览 • 1回复 待解决
web组件cookie的使用
1264浏览 • 1回复 待解决
多个Cookie如何进行批量设置
2081浏览 • 1回复 待解决
如何为网页设置单个Cookie的值。
354浏览 • 1回复 待解决
如何设置具有多个键值对的cookie
889浏览 • 1回复 待解决
Web组件Cookie信息保存在哪里?
473浏览 • 1回复 待解决
HarmonyOS Web管理Cookie和数据存储
551浏览 • 1回复 待解决
HarmonyOS cookie管理
220浏览 • 1回复 待解决
如何将cookie同步到web
570浏览 • 1回复 待解决
如何清除Web隐私模式下所有cookie
521浏览 • 1回复 待解决