鴻蒙5的首版發佈距現在已快滿一年了,同時伴隨着華為終端芯片製造的突破,搭載有HarmonyOS5的終端及用户的保有量在不斷的上升,各大廠商的APP也在逐漸適配鴻蒙生態,微信小程序生態也在逐漸適配成熟,移動端適配HarmonyOS生態已勢在必行。今天我們就結合我們一段時間以來「Ai樂運動」用户的反饋、實測驗證,來聊聊AI運動小程序在鴻蒙端的適配。注:本文主要介紹適配鴻蒙5以及後的HarmonyOS Next純血版鴻蒙版本,HarmonyOS 4及以前的版本因為還兼容Android生態、微信小程序運行時也與Android版本無差異,所以無需特別適配。
一、AI運動識別插件在鴻蒙5的實測表現
使用版v8.0.11微信分別在Harmony5.0.1和Harmony5.1.0的實際測試結果如下:
|
功能
|
功能表現
|
備註
|
|
識別引擎ve1
|
正常
|
但精度不佳,與MTK芯片問題一致,開啓增強模式即可解決 |
|
識別引擎ve1,增強模式
|
正常
|
Harmony5+建議識別模式
|
|
識別引擎ve1
|
正常
|
|
|
骨骼圖繪製
|
正常
|
|
|
資態識別
|
正常
|
|
|
運動識別檢測
|
正常
|
|
|
運動自定義擴展
|
正常
|
|
測試使用時的插件版本為當前最新版本
1.5.8,從結果看AI運動識別插件的功能在鴻蒙5的表現不存在兼容性問題,可以正常使用。
二、AI運動小程序在鴻蒙5的兼容性問題
使用微信版本v8.0.11分別在Harmony5.0.1用Harmony5.1.0測試兼容問題主要表現在小程序的Camera組件,問題為Camera的非原生事件,即Web渲染層事件如tap、touch___相關事件完全不觸發或偶爾觸發但是沒有冒泡向上傳播,代碼如下:
<template>
<view class="human-detection" style="videoStyles" @tap="onWrapperClick">
<!--原生initdone、error事件能正常觸發,但是渲染層事件tap不觸發,或者偶爾觸發但不冒泡-->
<camera id="preview" class="preview" :style="videoStyles" flash="off" :device-position="deviceKey"
resolution="medium" frame-size="small" @initdone="onCameraReady" @error="onCameraError" @tap="onCameraClick">
</camera>
</view>
</template>
如果您的AI運動小程序依賴Camera組件的非原生事件來交互,如全屏模式下點擊組件打開操作菜單等,在小程序運行時徹底修復上述問題之前,可以考慮先採用在Camera組件覆蓋一個一樣大小、透明的非原生組件如view來解決此問題,代碼如何下:
<template>
<view class="human-detection" style="videoStyles" @tap="onWrapperClick">
<camera id="preview" class="preview" :style="videoStyles" flash="off" :device-position="deviceKey"
resolution="medium" frame-size="small" @initdone="onCameraReady" @error="onCameraError" @tap="onCameraClick">
</camera>
<!--增加一個遮罩層來承擔交互,保證非原生事件能正常觸發-->
<view class="hramony-fix" :style="videoStyles"></view>
</view>
</template>
<script>
export default{
data(){
return {};
},
methods:{
onCameraClick(e){
//不會觸發
},
onWrapperClick(e){
//修補可以正常觸發
}
}
}
</script>
三、在純血鴻蒙下的適配指引
- 3.1、將AI運動識別插件升級到最新版本,併為純血鴻蒙版本的用户開啓
增強模式。 - 3.2、提示或調用API引導用户升級到最新版本的微信。
- 3.3、若存在依賴
Camera組件非原生事件交互的問題,可使用上述臨時方案修復交互。
AI運動小程序在純血鴻蒙下的適配就為您介紹到這,若有其它的適配場景我們繼續為您分享,歡迎關注...