HarmonyOS 鸿蒙Next如何确定在app中给h5设置cookies是否成功

发布于 1周前 作者 h691938207 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何确定在app中给h5设置cookies是否成功

通过configCookieSync方法设置完cookies后如何查看是否已经设置成功,android可以通过chrom浏览器查看,鸿蒙如何查看

2 回复

参考一下文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5

调试浏览器 url: chrome://inspect/#devices

具体步骤: 在文件夹里找到SDK并且找到有hdc.exe文件的Toolchains包,在此目录下打开cmd,输入hdc shell和cat /proc/net/unix | grep devtools,得到进程id后输入exit和hdc fport tcp:9222 localabstract:webview_devtools_remote_3458,3458为上一步骤得到的进程id,映射成功后打开浏览器,如果谷歌不行就使用edge,每次重启后都需要重新映射进程id 参考链接:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/web/web-debugging-with-devtools.md

edge://inspect/#devices

可以通过这个demo测试一下

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('configCookieSync')
        .onClick(() => {
          try {
            web_webview.WebCookieManager.configCookieSync('https://www.example.com', 'value=test');
          } catch (error) {
            let e: business_error.BusinessError = error as business_error.BusinessError;
            console.error(`ErrorCode: ${e.code}, Message: ${e.message}`);
          }
        })

      Button('fetchCookieSync')
        .onClick(() => {
          try {
            let value = web_webview.WebCookieManager.fetchCookieSync('https://www.example.com');
            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: 'www.example.com', controller: this.controller })
    }
  }
}

检查下相关配置

1.检查一下是否安装了adb

  1. chrome://inspect/#devices页面Devices中的Configure是否添加端口号

3.设备是否为设备需为4.1.0及以上版本

4.是否按照此文档https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-debugging-with-devtools-V5?catalogVersion=V5配联网权限,debug权限,还需要确定打开的页面是否为web页面

5.目前Chrome中识别设备可能较慢,若无法识别可尝试执行以下命令 hdc shell param set web.debug.devtools true

6.映射这步重新尝试用以下方法:

//查找 devtools 远程调试所需的 domain socket 名称,该名称与进程号有关,重启调试应用后,需要重复此步骤,以完成端口转发

cat /proc/net/unix | grep devtools

// 添加映射 [pid] 替换成实际的进程id

hdc fport tcp:9222 localabstract:webview_devtools_remote_[pid]

// 查看映射

hdc fport ls

示例:

hdc shell
cat /proc/net/unix | grep devtools
//显示 webview_devtools_remote_3458
exit
hdc fport tcp:9222 localabstract:webview_devtools_remote_3458
hdc fport ls

更多关于HarmonyOS 鸿蒙Next如何确定在app中给h5设置cookies是否成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,确定在app中为H5页面设置cookies是否成功,可以通过以下步骤进行验证:

  1. 设置Cookies

    • 使用webview.WebCookieManager.configCookieSync方法为目标网址设置cookies。
    • 确保设置的cookies格式正确,包括域名、名称、值等。
  2. 验证Cookies

    • 在H5页面加载完成后,通过开发者工具(如浏览器的F12工具)查看网络请求,检查请求头中是否包含了设置的cookies。
    • 也可以在H5页面中编写JavaScript代码,使用document.cookie来打印当前页面的cookies,查看是否包含设置的cookies。
  3. 注意事项

    • Cookies的设置和读取受到同源策略的限制,确保设置的cookies的域名与H5页面的域名一致。
    • 如果使用了WebView组件,需要确保WebView的配置允许访问cookies。

如果经过以上步骤仍无法确定cookies是否设置成功,请检查代码逻辑是否正确,以及是否有其他安全策略或配置影响了cookies的使用。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部