【案例实战】HarmonyOS6.0/Android/iOS Chromium内核升级,导致跨域请求不带cookie问题
最近手机系统升级HarmonyOS6.0后,导致原来的一个内置H5业务报错。经过排查发现是请求时没有带cookie导致。经过查看系统升级日志发现HarmonyOS6.0升级了Chromium内核。

HarmonyOS 5.0搭载的是Chromium 114内核,而我们在HarmonyOS 6.0环境中发现H5页面突然出现跨域请求不携带Cookie的问题。最初,我们排查了Chromium 114到132版本的更新日志,未发现与该问题相关的改动记录。 经过半天排查仍未找到有效线索后,我们决定通过复现Demo向华为提交工单请求协助。但奇怪的是,无论是在HarmonyOS 6.0还是5.0环境中,Demo都能正常工作。为排除变量干扰,我们将Demo的目录结构调整得与项目完全一致,甚至直接在项目环境中打开该Demo,结果依旧能正常携带Cookie,问题始终无法复现。 随后,我们全面检查了HarmonyOS 中所有与跨域相关的配置是否有更新,包括:
- 为Cookie添加"; SameSite=None; Secure"参数、
- 通过webview.WebCookieManager开启acceptCookie和acceptThirdPartyCookie、
- 配置webViewController的setPathAllowingUniversalAccess,
但所有尝试均未解决问题。 此时,排查陷入僵局:一方面,项目在HarmonyOS 5.0及Android、iOS端均正常运行,初步判断H5自身问题的可能性较低,更倾向于HarmonyOS 6.0存在兼容性bug;但另一方面,由于Demo无法复现问题,华为技术人员也难以进一步排查。 转机出现在同事注意到H5的网络请求框架近期有过变动。我们尝试使用框架变动前的H5包进行测试,结果一切恢复正常。顺着这条线索,H5业务团队最终定位到问题根源:新更换的axios请求未设置withCredentials参数,导致跨域请求无法携带Cookie。 更值得注意的是,这一现象与Chromium内核版本相关:在旧版本内核中,即便未设置withCredentials,跨域请求仍能正常携带Cookie;而新内核可能收紧了安全策略,严格要求显式设置该参数才允许跨域携带Cookie,这也解释了为何问题仅在HarmonyOS 6.0(搭载新版本内核)中暴露。
同理,若Android或iOS项目中的H5页面突然出现Cookie无法携带的问题,不妨检查H5项目是否未正确设置withCredentials。这类潜在问题,很可能会随着Chromium内核版本的升级而被触发并暴露出来。
HarmonyOS 6.0 Chromium 内核升级问题临时解决方案
OpenHarmony 6.0 系统的 ArkWebCore 内核默认升级至 M132 版本,同时提供双内核方案,保留了老版本 M114 内核。该方案可让生态应用自主选择从 M114 升级到 M132 的节奏与策略,从而降低因 Web 内核升级引发的兼容性问题。
应用在Web组件加载之前,可以通过SDK 20的setActiveWebEngineVersion接口,指定ArkWebCore内核的版本。
// EntryAbility.ets
import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import webview from '@ohos.web.webview';
import { ArkWebEngineType } from '@ohos.web.webview';
import testNapi from 'libentry.so';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 设置低版本web内核之前清理web缓存
testNapi.deleteWebCache();
// 设置web内核为M114
webview.WebViewController.setActiveWebEngineVersion(ArkWebEngineVersion::M114);
// 查询并打印内核版本
hilog.info(DOMAIN, 'testTag', 'webVersion = %{public}d', webview.WebviewController.getActiveWebEngineVersion());
}
}
如果应用未适配SDK 20也可以通过NDK方式调用:M114内核在OpenHarmony6.0系统上的适配指导
需注意:M114 内核仅会进行安全补丁及舆情问题修复,不新增功能;此遗留内核仅作兼容性回滚使用,后续新 OpenHarmony 系统发布时并非必选支持,且支持有时间限制,通常在系统发布半年后会完全禁用,目前官方计划在2026-Q2禁用此内核。
更多推荐



所有评论(0)