基礎(chǔ)庫(kù)從 3.7.0 起正式支持鴻蒙 OS 平臺(tái),后續(xù)與其它平臺(tái)一致,通過(guò)后臺(tái)灰度更新基礎(chǔ)庫(kù),開(kāi)發(fā)者工具可在詳情 - 本地設(shè)置 - 調(diào)試基礎(chǔ)庫(kù)切到 3.7.0 版本進(jìn)行開(kāi)發(fā)調(diào)試。
架構(gòu)概覽
小程序在鴻蒙 OS 平臺(tái)的運(yùn)行環(huán)境與安卓類(lèi)似,即邏輯層的 JavaScript 代碼運(yùn)行在 v8 中,視圖層是基于鴻蒙 OS 原生的 ArkWeb 引擎來(lái)渲染,而 Skyline 渲染引擎在支持中,暫未提供。
此外,小程序的運(yùn)行機(jī)制、更新機(jī)制、組件框架等均保持一致,但在一些特性支持度上會(huì)有區(qū)別。
適配方式
目前小程序在鴻蒙 OS 平臺(tái)與其它平臺(tái)的區(qū)別主要是 WebView 引擎及涉及原生能力的特性上。
前者在鴻蒙 OS 上使用的是 ArkWeb 引擎,可能存在一些依賴(lài) WebView 的特性上的差異,如 CSS 樣式相關(guān),這類(lèi)問(wèn)題需按實(shí)際情況兼容;
后者大多是與組件/接口相關(guān),可通過(guò) wx.canIUse
接口或者通過(guò) wx.getDeviceInfo().platform === 'ohos'
判斷,對(duì)業(yè)務(wù)邏輯做必要的兼容。
調(diào)試方式
- 通過(guò)開(kāi)發(fā)者工具調(diào)試
- 下載最新的nightly版開(kāi)發(fā)者工具,通過(guò)最新開(kāi)發(fā)者工具調(diào)試
- 調(diào)試基礎(chǔ)庫(kù)版本選擇3.7.0
- 選擇「小程序模式」,并選擇華為鴻蒙機(jī)型
- 支持使用 wx.canIUse 判斷接口是否可使用
- 通過(guò)真機(jī)調(diào)試
目前已對(duì)外提供公測(cè)版微信,可在鴻蒙 OS 的應(yīng)用商店下載,操作路徑為:鴻蒙 next 應(yīng)用商店 - 我的 - 應(yīng)用嘗鮮,下拉找到微信,安裝后即可正常打開(kāi)小程序進(jìn)行調(diào)試。
支持情況
以下羅列出暫未支持的特性,對(duì)使用到未支持的特性需做好兼容。其中組件/接口具體的支持情況可跳轉(zhuǎn)至對(duì)應(yīng)文檔查看,部分支持的一般代表少數(shù)高階功能不支持。
框架
特性 | 支持情況 |
---|---|
Skyline 渲染引擎 | 支持中 |
初始渲染緩存 | 不支持 |
暗黑模式 | 不支持 |
周期性更新 | 不支持 |
數(shù)據(jù)預(yù)拉取 | 不支持 |
后臺(tái)運(yùn)行 | 不支持 |
無(wú)障礙訪問(wèn) | 不支持 |
分享朋友圈 | 不支持 |
組件
組件 | 支持情況 |
---|---|
無(wú)障礙訪問(wèn) | 不支持 |
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 | 部分支持 |
接口
模塊 | 接口 | 支持情況 |
---|---|---|
基礎(chǔ)-系統(tǒng) | wx.getSkylineInfo / wx.getSkylineInfoSync | 不支持 |
基礎(chǔ)-生命周期 | wx.onApiCategoryChange / wx.offApiCategoryChange / wx.getApiCategory | 不支持 |
基礎(chǔ)-應(yīng)用級(jí)事件 | wx.onThemeChange / wx.offThemeChange / wx.onAudioInterruptionEnd / wx.onAudioInterruptionBegin / wx.offAudioInterruptionEnd / wx.offAudioInterruptionBegin | 不支持 |
基礎(chǔ)-性能 | wx.preloadWebview / wx.preloadSkylineView | 不支持 |
路由-自定義路由 | - | 支持中 |
跳轉(zhuǎn) | wx.openEmbeddedMiniProgram / wx.onEmbeddedMiniProgramHeightChange / wx.offEmbeddedMiniProgramHeightChange | 不支持 |
轉(zhuǎn)發(fā) | wx.showShareImageMenu / wx.onCopyUrl / wx.offCopyUrl | 不支持 |
界面-交互 | wx.enableAlertBeforeUnload / wx.disableAlertBeforeUnload | 支持中 |
界面-滾動(dòng) | ScrollViewContext | 不支持 |
界面-置頂 | wx.setTopBarText | 不支持 |
界面-窗口 | - | 不支持 |
界面-worklet動(dòng)畫(huà) | - | 支持中 |
網(wǎng)絡(luò)-mDNS | - | 不支持 |
支付 | wx.requestCommonPayment / wx.requestVirtualPayment / wx.openHKOfflinePayView | 不支持 |
數(shù)據(jù)緩存 | wx.revokeBufferURL / wx.createBufferURL | 不支持 |
數(shù)據(jù)緩存-數(shù)據(jù)預(yù)拉取和周期性更新 | wx.getBackgroundFetchData / wx.onBackgroundFetchData / wx.setBackgroundFetchToken / wx.getBackgroundFetchToken | 不支持 |
數(shù)據(jù)緩存-緩存管理器 | - | 不支持 |
畫(huà)布 | - | 部分支持 |
媒體-地圖 | executeVisualLayerCommand / addVisualLayer / removeVisualLayer / addGroundOverlay / updateGroundOverlay / removeGroundOverlay / MapContext.on | 不支持 |
媒體-圖片 | wx.cropImage / wx.editImage / wx.chooseMessageFile | 不支持 |
媒體-視頻 | wx.openVideoEditor / wx.compressVideo | 不支持 |
媒體-音頻 | 只支持 WebAudio | 不支持 |
媒體-錄音 | - | 不支持 |
媒體-音視頻合成 | - | 不支持 |
媒體-實(shí)時(shí)語(yǔ)音 | - | 不支持 |
媒體-畫(huà)面錄制器 | - | 不支持 |
媒體-視頻解碼器 | - | 不支持 |
開(kāi)放接口-收貨地址 | - | 不支持 |
開(kāi)放接口-卡券 | - | 不支持 |
開(kāi)放接口-發(fā)票 | - | 不支持 |
開(kāi)放接口-生物認(rèn)證 | - | 不支持 |
開(kāi)放接口-微信運(yùn)動(dòng) | - | 不支持 |
開(kāi)放接口-訂閱消息 | - | 不支持 |
開(kāi)放接口-收藏 | - | 支持中 |
開(kāi)放接口-車(chē)牌 | - | 不支持 |
開(kāi)放接口-視頻號(hào) | - | 不支持 |
開(kāi)放接口-微信客服 | - | 不支持 |
開(kāi)放接口-微信表情 | - | 不支持 |
設(shè)備-藍(lán)牙-通用 | wx.makeBluetoothPair / wx.isBluetoothDevicePaired | 不支持 |
設(shè)備-藍(lán)牙-低功耗中心設(shè)備 | wx.getBLEMTU | 不支持 |
設(shè)備-NFC讀寫(xiě) | - | 不支持 |
設(shè)備-聯(lián)系人 | wx.addPhoneContact | 不支持 |
設(shè)備-無(wú)障礙 | - | 不支持 |
設(shè)備-電量 | wx.onBatteryInfoChange / wx.offBatteryInfoChange | 不支持 |
設(shè)備-NFC主機(jī)卡模擬 | - | 不支持 |
設(shè)備-網(wǎng)絡(luò) | - | 不支持 |
設(shè)備-屏幕 | wx.onScreenRecordingStateChanged / wx.offScreenRecordingStateChanged / wx.getScreenRecordingState | 不支持 |
設(shè)備-內(nèi)存 | - | 不支持 |
設(shè)備-掃碼 | - | 不支持 |
AI | - | 不支持 |
Worker | - | 部分支持 |
廣告 | - | 不支持 |
Skyline | - | 支持中 |
XR-FRAME | - | 不支持 |