跳转到内容

平台

HarmonyOS NEXT 与 ArkWeb 上的 PWA

发布于

华为的 HarmonyOS NEXT 应用开发规划页面将 ArkWeb 列为提供 Web 组件、在应用中显示网页内容 的开发套件。OpenHarmony 文档支持相同的站点嵌入路线,但这些来源不能证明华为浏览器会安装 基于 manifest 的 PWA 或提供浏览器安装提示。

OpenHarmony 文档用 ArkWeb 的 Web 组件加载页面(远程或本地均可)和 HTML 文本。

加载远程页面需要 ohos.permission.INTERNET 权限,宿主创建 WebviewController 并将其传给 Web,后续导航可以使用 loadUrl()。

文档中的内核对应关系只适用于 ArkWeb。OpenHarmony 4.1 至 5.1 使用 Chromium M114; OpenHarmony 6.0 默认使用 M132,也可使用 M114。同一来源说明,开发者可以依据 ArkWeb 内核版本在相关网站获取 W3C 标准支持信息。内核对应关系无法说明华为浏览器能否安装站点、能否独立显示 站点,也无法说明 Web Push 的表现。

华为浏览器的安装与独立显示情况未知,Service Worker 与 W3C Web Push 的支持情况同样未知。 所引华为资料记录的是 ArkWeb 与 Push Kit,而不是这些浏览器行为。请在运行时逐项检测 Web 能力,并保留普通浏览器页面的回退路径。若要发布应用商店安装包,应把 ArkWeb 视作 Web 内容 的原生宿主,而不能据此认定同一站点可从华为浏览器安装。

这个最小 ArkTS 组件采用文档中的远程页面模式。

宿主模块还需在 module.json5 中声明 ohos.permission.INTERNET。

import { webview } from '@kit.ArkWeb';
@Entry
@Component
struct WebApp {
controller: webview.WebviewController = new webview.WebviewController();
build() {
Column() {
Web({ src: 'https://example.com/', controller: this.controller })
}
}
}

请将示例源站替换为已部署的 HTTPS 站点,导航仍由宿主应用的 WebviewController 管理。

不假定内核支持并检测 Service Worker

链接到“不假定内核支持并检测 Service Worker”一节

在已加载页面内执行能力检测。这个完整页面会报告 API 是否存在,并在 API 不存在时显示仅在线 回退状态。

<!doctype html>
<html lang="zh-CN">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Service Worker 能力</title>
<p id="offline-status">正在检查离线能力……</p>
<script>
const status = document.querySelector('#offline-status');
if ('serviceWorker' in navigator) {
status.textContent = 'Service Worker API 可用。';
} else {
status.textContent = '本次会话仅支持在线使用。';
}
</script>
</html>

回退分支不会推测 API 缺失的原因,并让页面保持仅在线模式。

规范

规范状态
无。
  • 图例
  • 支持
  • 部分支持
  • 需开启标志
  • 不支持
  • 未知
浏览器 / 平台支持版本置信度来源备注
华为浏览器(HarmonyOS) · 添加到主屏幕#未知—低来源1
华为浏览器(HarmonyOS) · standalone 显示#未知—低来源2
华为浏览器(HarmonyOS) · Service Worker#未知—低来源3
华为浏览器(HarmonyOS) · Web Push#未知—低来源4
小米浏览器 · 添加到主屏幕#未知—低来源5
小米浏览器 · standalone 显示#未知—低来源6
小米浏览器 · Service Worker#未知—低来源7
小米浏览器 · Web Push#未知—低来源8
ColorOS 浏览器 · 添加到主屏幕#未知—低来源9
ColorOS 浏览器 · standalone 显示#未知—低来源10
ColorOS 浏览器 · Service Worker#未知—低来源11
ColorOS 浏览器 · Web Push#未知—低来源12
UC 浏览器 · 添加到主屏幕#未知—低来源13
UC 浏览器 · standalone 显示#未知—低来源14
UC 浏览器 · Service Worker#支持U4 2.0 (Chromium 57)低来源15
UC 浏览器 · Web Push#未知—低来源16
QQ 浏览器 · 添加到主屏幕#未知—低来源17
QQ 浏览器 · standalone 显示#未知—低来源18
QQ 浏览器 · Service Worker#支持—低来源19
QQ 浏览器 · Web Push#未知—低来源20
微信 WebView(XWeb) · 添加到主屏幕#未知—低来源21
微信 WebView(XWeb) · standalone 显示#未知—低来源22
微信 WebView(XWeb) · Service Worker#未知—低来源23
微信 WebView(XWeb) · Web Push#未知—低来源24
  1. 未找到华为文档(2026-10-03 与 2026-10-20 核对)说明华为浏览器是否提供基于 manifest 的安装或 `beforeinstallprompt`。华为开发者文档覆盖的是 HarmonyOS 的 Web 组件 ArkWeb,并按系统版本给出对应的 Chromium 版本(HarmonyOS 4.1 至 5.1 为 M114,6.0 默认 M132,6.1 为 M132,7.0 默认 M144;ArkWeb 简介,2026-09-17 更新)。这只说明组件,不说明浏览器的安装行为。华为面向 HarmonyOS 5.0 及以上的帮助页把从华为浏览器“添加至桌面”描述为创建快捷方式,没有提到 manifest。
  2. 未找到华为文档(2026-10-03 与 2026-10-20 核对)说明主屏幕 Web 应用是以 `standalone` 显示模式启动,还是作为浏览器标签页打开。
  3. 未找到华为文档(2026-10-03 与 2026-10-20 核对)说明华为浏览器向第三方页面暴露 `navigator.serviceWorker`。ArkWeb 的 API 参考为嵌入该组件的应用提供了 Service Worker 相关接口(`warmupServiceWorker`、`setServiceWorkerWebSchemeHandler`,API 12 起;2026-10-10 更新),这有提示意义,但不是对浏览器的说明。
  4. 未找到华为文档(2026-10-03 与 2026-10-20 核对)说明华为浏览器支持 W3C Web Push(`PushManager`、VAPID)。华为为 Web 记录的推送路径是其自有的 Push Kit 服务,而不是 Push API。
  5. 未找到小米现行文档(2026-10-03 核对)。小米 MIUI 9 Global Beta 8.6.14 更新日志(2018-06)曾宣布小米浏览器支持 Progressive Web Apps,并在 Apps 区域列出已安装的 PWA,但该论坛帖已下线,HyperOS 时代也没有替代说明,因此本行保持未知。
  6. 未找到小米文档(2026-10-03 核对)说明小米浏览器中主屏幕 Web 应用的显示模式。
  7. 未找到小米文档(2026-10-03 核对)说明小米浏览器的 Service Worker 可用性。小米澎湃 OS 开发者文档覆盖快应用和快游戏,不涉及浏览器的 Web 平台。
  8. 未找到小米文档(2026-10-03 核对)说明小米浏览器对 Push API 的支持。
  9. 未找到 OPPO 文档(2026-10-03 核对)。OPPO 开放平台记录的是软件商店、快应用和推送 SDK 接入,不涉及浏览器(`HeyTapBrowser`)的 Web 平台;其面向用户的菜单提供网页快捷方式,这不是基于 manifest 的安装。
  10. 未找到 OPPO 文档(2026-10-03 核对)说明主屏幕 Web 应用的显示模式。
  11. 未找到 OPPO 文档(2026-10-03 核对)说明 ColorOS 浏览器的 Service Worker 可用性。
  12. 未找到 OPPO 文档(2026-10-03 核对)说明 ColorOS 浏览器对 Push API 的支持;OPPO 记录的推送通道是其原生推送 SDK。
  13. 没有记载已上线(2026-10-20 核对)。UC 的 U4 内核博客(2018-10-26)只在介绍 Chromium 58–69 新特性时提到以 `display: fullscreen` 启动主屏幕 Web 应用,并称基于 Chromium 69 的 U4 3.0 仍在测试和灰度中;博客说明 U4 2.0 基于 Chromium 57、U4 3.0 基于 Chromium 69。UC 内核团队在 2018 年的 InfoQ 访谈(https://www.infoq.cn/article/2018/05/practice-influence-pwa-uc-ali)中表示,添加到主屏幕和 Web Push 通知需要在浏览器外壳或系统层面另外适配。两者都没有说 UC 浏览器已经提供安装途径,所以本行标为未知。
  14. UC 只记录了主屏幕启动时的 `display: fullscreen`(U4 内核博客,2018-10-26);未找到 UC 关于 `standalone` 或 `minimal-ui` 的说明(2026-10-03 核对)。
  15. UC 的 U4 内核博客(2018-10-26)把 Chromium 58–69 区间的 Service Worker 特性(导航预加载、覆盖 Service Worker 的 `Clear-Site-Data`)记录为 U4 2.0 → 3.0 升级的一部分;U4 开发者平台宣称完整支持 PWA。内核团队在 2018 年的 InfoQ 访谈中确认支持 Service Worker。
  16. UC 2017-10 的 U4 2.0 发布报道宣称为大陆用户提供标准 Web 推送服务,但内核团队在 2018 年的 InfoQ 访谈中把 Service Worker 推送列为仍需外壳适配的特性,U4 内核博客也未提及推送。没有厂商文档说明该行为(2026-10-03 核对),本行保持未知。
  17. 腾讯 X5/TBS 文档覆盖 QQ 浏览器所用的内核,但没有关于 manifest 安装或 `beforeinstallprompt` 的页面(2026-10-03 与 2026-10-20 核对)。
  18. 未找到腾讯文档(2026-10-03 与 2026-10-20 核对)说明 QQ 浏览器中主屏幕 Web 应用的显示模式。
  19. 腾讯 X5/TBS 产品文档曾有一页 Service Worker 说明,含注册步骤;要求 HTTPS,且未给出内核版本,因此 `version_added` 留空而不是编造。该页没有日期,有 2018-04-09 与 2023-06-02 的存档,到 2026-10-20 已跳转到 X5 首页,所以本行依据的是存档副本。
  20. 未找到腾讯文档(2026-10-03 与 2026-10-20 核对)说明 QQ 浏览器对 Push API 的支持。
  21. 微信开放社区文档把 XWeb 描述为基于 Chromium 的应用内内核(Chromium 78、86、107、111、116、122、138 以及 142 开发版),可通过 UA 中的 `XWEB/` 识别,并说明部分设备会回退到系统 WebView。文档没有记录第三方网页的任何安装入口(2026-10-03 核对)。
  22. 未找到微信文档(2026-10-03 核对)说明显示模式;在微信中打开的页面渲染在微信标题栏之下,文档没有描述网页的 standalone 启动方式。
  23. 微信的 XWeb 公告(Chromium 111 灰度;Chromium 142 开发版,现网为 Chromium 138)说明内核升级会影响第三方网页的渲染,但没有微信文档说明是否向第三方页面暴露 `navigator.serviceWorker`(2026-10-03 核对)。
  24. 未找到微信文档(2026-10-03 核对)说明 XWeb 对 Push API 或通知权限的支持;微信为网页内容记录的消息通道是公众号模板消息和订阅消息,而不是 Push API。

源数据: /compatibility/cn-vendor-browsers.json · 全球使用占比: 0 % (StatCounter 2026-09, CC BY-SA 4.0)

来源: 编辑整理 · 最近核验 2026-10-20 · 置信度: 低 (由来源计算)