基础库从 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'
判断,对业务逻辑做必要的兼容。
调试方式
- 通过开发者工具调试
- 下载最新的nightly版开发者工具,通过最新开发者工具调试
- 调试基础库版本选择3.7.0
- 选择「小程序模式」,并选择华为鸿蒙机型
- 支持使用 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 | - | 不支持 |