# 鸿蒙 OS 适配指南

基础库从 3.7.0 起正式支持鸿蒙 OS 平台,后续与其它平台一致,通过后台灰度更新基础库,开发者工具可在详情 - 本地设置 - 调试基础库切到 3.7.0 版本进行开发调试。

# 架构概览

小程序在鸿蒙 OS 平台的运行环境与安卓类似,即逻辑层的 JavaScript 代码运行在 v8 中,视图层是基于鸿蒙 OS 原生的 ArkWeb 引擎来渲染,而 Skyline 渲染引擎在支持中,暂未提供。

此外,小程序的运行机制、更新机制、组件框架等均保持一致,但在一些特性支持度上会有区别。

# 适配方式

目前小程序在鸿蒙 OS 平台与其它平台的区别主要是 WebView 引擎及涉及原生能力的特性上。

前者在鸿蒙 OS 上使用的是 ArkWeb 引擎,可能存在一些依赖 WebView 的特性上的差异,如 CSS 样式相关,这类问题需按实际情况兼容;

后者大多是与组件/接口相关,可通过 wx.canIUse 接口或者通过 wx.getDeviceInfo().platform === 'ohos' 判断,对业务逻辑做必要的兼容。

# 调试方式

  • 通过开发者工具调试
  1. 下载最新的nightly版开发者工具,通过最新开发者工具调试
  2. 调试基础库版本选择3.7.0
  3. 选择「小程序模式」,并选择华为鸿蒙机型
  4. 支持使用 wx.canIUse 判断接口是否可使用
  • 通过真机调试

目前已对外提供公测版微信,可在鸿蒙 OS 的应用商店下载,操作路径为:鸿蒙 next 应用商店 - 我的 - 应用尝鲜,下拉找到微信,安装后即可正常打开小程序进行调试。

# 支持情况

以下罗列出暂未支持的特性,对使用到未支持的特性需做好兼容。其中组件/接口具体的支持情况可跳转至对应文档查看,部分支持的一般代表少数高阶功能不支持

# 框架

特性 支持情况
Skyline 渲染引擎 支持中
初始渲染缓存 不支持
暗黑模式 不支持
周期性更新 不支持
数据预拉取 不支持
后台运行 不支持
无障碍访问 不支持
分享朋友圈 不支持

# 组件

组件 支持情况
无障碍访问 不支持
page-container 部分支持
scroll-view 部分支持
button 部分支持
input 部分支持
keyboard-accessory 不支持
textarea 部分支持
channel-live 不支持
channel-video 不支持
live-pusher 部分支持
video 部分支持
voip-room 不支持
map 部分支持
canvas 部分支持
ad/ad-custom 不支持
official-account 不支持
xr-frame 不支持
web-view 部分支持

# 接口

模块 接口 支持情况
基础-系统 wx.getSkylineInfo / wx.getSkylineInfoSync 不支持
基础-生命周期 wx.onApiCategoryChange / wx.offApiCategoryChange / wx.getApiCategory 不支持
基础-应用级事件 wx.onThemeChange / wx.offThemeChange / wx.onAudioInterruptionEnd / wx.onAudioInterruptionBegin / wx.offAudioInterruptionEnd / wx.offAudioInterruptionBegin 不支持
基础-性能 wx.preloadWebview / wx.preloadSkylineView 不支持
路由-自定义路由 - 支持中
跳转 wx.openEmbeddedMiniProgram / wx.onEmbeddedMiniProgramHeightChange / wx.offEmbeddedMiniProgramHeightChange 不支持
转发 wx.showShareImageMenu / wx.onCopyUrl / wx.offCopyUrl 不支持
界面-交互 wx.enableAlertBeforeUnload / wx.disableAlertBeforeUnload 支持中
界面-滚动 ScrollViewContext 不支持
界面-置顶 wx.setTopBarText 不支持
界面-窗口 - 不支持
界面-worklet动画 - 支持中
网络-mDNS - 不支持
支付 wx.requestCommonPayment / wx.requestVirtualPayment / wx.openHKOfflinePayView 不支持
数据缓存 wx.revokeBufferURL / wx.createBufferURL 不支持
数据缓存-数据预拉取和周期性更新 wx.getBackgroundFetchData / wx.onBackgroundFetchData / wx.setBackgroundFetchToken / wx.getBackgroundFetchToken 不支持
数据缓存-缓存管理器 - 不支持
画布 - 部分支持
媒体-地图 executeVisualLayerCommand / addVisualLayer / removeVisualLayer / addGroundOverlay / updateGroundOverlay / removeGroundOverlay / MapContext.on 不支持
媒体-图片 wx.cropImage / wx.editImage / wx.chooseMessageFile 不支持
媒体-视频 wx.openVideoEditor / wx.compressVideo 不支持
媒体-音频 只支持 WebAudio 不支持
媒体-录音 - 不支持
媒体-音视频合成 - 不支持
媒体-实时语音 - 不支持
媒体-画面录制器 - 不支持
媒体-视频解码器 - 不支持
开放接口-收货地址 - 不支持
开放接口-卡券 - 不支持
开放接口-发票 - 不支持
开放接口-生物认证 - 不支持
开放接口-微信运动 - 不支持
开放接口-订阅消息 - 不支持
开放接口-收藏 - 支持中
开放接口-车牌 - 不支持
开放接口-视频号 - 不支持
开放接口-微信客服 - 不支持
开放接口-微信表情 - 不支持
设备-蓝牙-通用 wx.makeBluetoothPair / wx.isBluetoothDevicePaired 不支持
设备-蓝牙-低功耗中心设备 wx.getBLEMTU 不支持
设备-NFC读写 - 不支持
设备-联系人 wx.addPhoneContact 不支持
设备-无障碍 - 不支持
设备-电量 wx.onBatteryInfoChange / wx.offBatteryInfoChange 不支持
设备-NFC主机卡模拟 - 不支持
设备-网络 - 不支持
设备-屏幕 wx.onScreenRecordingStateChanged / wx.offScreenRecordingStateChanged / wx.getScreenRecordingState 不支持
设备-内存 - 不支持
设备-扫码 - 不支持
AI - 不支持
Worker - 支持中
广告 - 不支持
Skyline - 支持中
XR-FRAME - 不支持