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'}], 
  ...... 
}
  • 1.
  • 2.
  • 3.
  • 4.

替换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) 
          } 
        }) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.

​这里仅为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
3222浏览 • 1回复 待解决
HarmonyOS 用域名设置cookie无效
860浏览 • 1回复 待解决
HarmonyOS Web cookie设置咨询
1176浏览 • 1回复 待解决
http接口如何设置cookie
2747浏览 • 1回复 待解决
如何批量设置多个cookie
1419浏览 • 1回复 待解决
HarmonyOS 请求头设置cookie
1065浏览 • 1回复 待解决
web组件cookie的使用
2130浏览 • 1回复 待解决
多个Cookie如何进行批量设置
2987浏览 • 1回复 待解决
HarmonyOS 集群环境设置webview的cookie
952浏览 • 1回复 待解决
HarmonyOS 设置cookie报错不合法17100005
770浏览 • 1回复 待解决
如何为网页设置单个Cookie的值。
1174浏览 • 1回复 待解决
如何设置具有多个键值对的cookie
1737浏览 • 1回复 待解决
如何正确获取web组件上页面的cookie
1024浏览 • 1回复 待解决
Web组件Cookie信息保存在哪里?
1256浏览 • 1回复 待解决