HarmonyOS 鸿蒙Next:为webview设置cookie,顶级域名cookie在二级域名上无法读取,需单独设置二级域名cookie

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:为webview设置cookie,顶级域名cookie在二级域名上无法读取,需单独设置二级域名cookie

我在https://**.cn中设置了cookie web_webview.WebCookieManager.configCookie("https://****.cn", "name=value");

但是在https://open..cn中读取不到该cookie  如果我为二级域名单独设置cookie web_webview.WebCookieManager.configCookie("<a class="autoSetLinkTag" href="https://open." target="_blank" rel="nofollow">https://open.</a>****.cn", "name=value"); 则在https://open..cn中能读到cookie。  

期望结果: 为了方便以后我们web端拓展二级域名,我希望能像安卓一样只设置顶级域名就能应用到所有的二级域名上。

2 回复
增加 domain = fanbook.cn

代码如下


import { webview } from '@kit.ArkWeb';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry @Component

struct WebComponent {   controller: webview.WebviewController = new webview.WebviewController();

  build() {     Column() {       Button(‘configCookieSync’)         .onClick(() => {           try {             webview.WebCookieManager.configCookieSync(https://fanbook.cn, ‘name=value; domain = fanbook.cn);           } catch (error) {             console.error(ErrorCode: ${(error as BusinessError).code}, &nbsp;Message: ${(error as BusinessError).message});           }         })       Button(‘fetchCookieSync2’)         .onClick(() => {           try {             let value = webview.WebCookieManager.fetchCookieSync(https://open.fanbook.cn);             console.log("fetchCookieSync2 cookie = " + value);           } catch (error) {             console.error(ErrorCode: ${(error as BusinessError).code}, &nbsp;Message: ${(error as BusinessError).message});           }         })

      Web({ src: www.example.com, controller: this.controller })     }   } }

在HarmonyOS鸿蒙Next系统中,为webview设置cookie时,如果顶级域名下的cookie在二级域名上无法读取,这通常是由于cookie的作用域限制导致的。Cookie默认只能在其设置的域名及其子域名中访问,但顶级域名的cookie不会自动传递到二级域名。

为了解决这个问题,需要在webview中为二级域名单独设置cookie。这可以通过编程方式在webview加载页面之前完成。具体操作步骤如下:

  1. 获取webview组件:首先确保你已经获取到webview的实例。

  2. 设置cookie:在webview加载URL之前,通过编程方式设置cookie。这通常涉及到修改HTTP请求头,或者在webview的加载配置中指定cookie。

  3. 加载URL:在设置完cookie后,再加载目标URL。

请注意,不同版本的HarmonyOS系统以及不同的webview实现可能会有细微的差异,因此具体实现方法可能需要根据实际情况进行调整。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。希望这些信息能对你有所帮助。

回到顶部