基礎庫從 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 | - | 不支持 |