UniApp 作為跨端開發框架,已支持 HarmonyOS(鴻蒙)多形態設備開發,包括鴻蒙手機、平板、智慧屏、車機等。本文從環境搭建、項目配置、開發適配、調試發佈等維度,詳解 UniApp 開發鴻蒙應用的核心流程。
一、核心前提:UniApp 對鴻蒙的支持範圍
- HarmonyOS 2.0+(API Version 6+),推薦基於 HarmonyOS 4.0(API Version 10)開發;
- UniApp 基座要求:HBuilderX 4.0+(必須升級到最新穩定版)。
- 手機 / 平板(鴻蒙原生應用);
- 智慧屏(需適配大屏佈局);
- 車機(需適配車機交互規範);
- 暫不支持鴻蒙輕量級設備(如穿戴設備)。
二、環境搭建
1. 基礎工具安裝
|
工具
|
作用
|
下載地址
|
|
HBuilderX
|
UniApp 開發 IDE
|
HBuilderX 官網 |
|
DevEco Studio
|
鴻蒙開發 / 調試 / 打包工具
|
鴻蒙開發者官網 |
|
HarmonyOS SDK
|
鴻蒙原生開發包
|
DevEco Studio 內通過 SDK Manager 下載(API Version 10+)
|
|
Node.js(16+)
|
編譯依賴
|
Node.js 官網 |
2. 環境配置
(1)HBuilderX 配置鴻蒙開發環境
- 打開 HBuilderX → 菜單欄「工具」→「設置」→「運行配置」→「HarmonyOS」;
- 配置 DevEco Studio 安裝路徑(如
D:\DevEco Studio); - 配置 HarmonyOS SDK 路徑(DevEco Studio 默認路徑:
C:\Users\用户名\AppData\Local\Huawei\Sdk); - 驗證配置:HBuilderX 底部「終端」執行
ohpm -v(鴻蒙包管理器),能輸出版本即配置成功。
(2)鴻蒙設備 / 模擬器準備
- 真機:鴻蒙 2.0+ 設備,開啓「開發者模式」→ 打開「USB 調試」→ 連接電腦;
- 模擬器:DevEco Studio 中創建鴻蒙模擬器(推薦 Phone 設備,API Version 10)。
三、創建 UniApp 鴻蒙項目
1. 新建項目
- 打開 HBuilderX → 「文件」→「新建」→「項目」;
- 選擇「UniApp」→ 模板(如「默認模板」)→ 填寫項目名稱 / 路徑;
- 勾選「HarmonyOS」作為目標平台(HBuilderX 4.0+ 已默認支持);
- 點擊「創建」,生成支持鴻蒙的 UniApp 項目。
2. 項目目錄核心結構(鴻蒙相關)
plaintext
├─uni_modules/ // 通用組件/插件
├─pages/ // 業務頁面
├─manifest.json // 應用配置(含鴻蒙配置)
├─pages.json // 頁面路由/窗口配置
├─uni.scss // 全局樣式
├─oh_modules/ // 鴻蒙依賴包(編譯後生成)
└─build/ohos/ // 鴻蒙編譯產物(ArkTS/JS代碼)
四、關鍵配置(manifest.json)
json
{
"appid": "your-appid", // 鴻蒙開發者後台申請的AppID
"name": "UniApp-HarmonyOS",
"ohos": {
"minSDKVersion": 6, // 最低兼容鴻蒙版本
"targetSDKVersion": 10, // 目標SDK版本
"icon": "static/ohos_icon.png", // 鴻蒙應用圖標(建議192*192px)
"label": "鴻蒙應用名稱",
"vendor": "your-vendor",
"version": {
"code": 10000,
"name": "1.0.0"
},
// 鴻蒙權限配置(按需添加)
"permissions": [
{
"name": "ohos.permission.INTERNET"
},
{
"name": "ohos.permission.READ_USER_STORAGE"
}
]
}
}
五、開發與適配要點
1. 頁面開發(與普通 UniApp 一致)
vue
<template>
<view class="container">
<text class="title">鴻蒙UniApp示例</text>
<button @click="showToast">點擊測試鴻蒙API</button>
</view>
</template>
<script>
export default {
methods: {
showToast() {
// 調用UniApp統一API(自動適配鴻蒙)
uni.showToast({
title: '鴻蒙原生提示',
icon: 'none'
});
// 直接調用鴻蒙原生API(需判斷平台)
if (uni.getSystemInfoSync().platform === 'harmony') {
// 鴻蒙ArkTS API示例(需通過JS橋接)
const prompt = require('@ohos.promptAction');
prompt.showToast({
message: '原生鴻蒙Toast',
duration: 2000
});
}
}
}
}
</script>
<style scoped>
.container {
flex: 1;
justify-content: center;
align-items: center;
}
.title {
font-size: 30px;
margin-bottom: 20px;
}
</style>
2. 鴻蒙特有適配
(1)屏幕適配
- 鴻蒙設備分辨率多樣,優先使用
rpx單位(UniApp 自動適配); - 大屏設備(智慧屏 / 車機):通過
uni.getSystemInfoSync()獲取屏幕尺寸,動態調整佈局:js
const sysInfo = uni.getSystemInfoSync();
if (sysInfo.screenWidth > 1080) { // 大屏判斷
this.isLargeScreen = true;
}
(2)鴻蒙原生 API 調用
if (uni.getSystemInfoSync().platform === 'harmony') {
const fileIO = require('@ohos.fileio');
const path = require('@ohos.file.path');
// 鴻蒙文件讀寫邏輯
}
(3)權限申請
js
// 動態申請存儲權限
if (uni.getSystemInfoSync().platform === 'harmony') {
const abilityAccessCtrl = require('@ohos.abilityAccessCtrl');
const atManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser({
permissions: ['ohos.permission.READ_USER_STORAGE']
}).then((result) => {
console.log('權限申請結果:', result);
});
}
3. 避免踩坑
- 不支持鴻蒙特有組件(如
Tabs鴻蒙定製版),需用 UniApp 跨端組件替代; - 鴻蒙不支持
wx://協議、微信小程序 API,需替換為 UniApp 統一 API; - 避免直接操作 DOM(鴻蒙無 WebView DOM),使用 UniApp 數據驅動語法;
- 鴻蒙應用包名(bundleName)需與開發者後台一致,否則無法打包。
六、調試與運行
1. 運行到鴻蒙模擬器 / 真機
- 打開 HBuilderX 項目,點擊頂部「運行」→「運行到手機 / 模擬器」;
- 選擇「HarmonyOS」→ 選擇已連接的真機 / 模擬器;
- HBuilderX 會自動編譯代碼為鴻蒙 ArkTS/JS 項目,並通過 DevEco Studio 安裝到設備;
- 調試日誌:HBuilderX 底部「控制枱」→「鴻蒙調試」標籤頁查看。
2. 斷點調試
- 在 HBuilderX 中給代碼打斷點;
- 運行時選擇「調試模式」→「HarmonyOS 調試」;
- 可實時查看變量、調用棧,與原生鴻蒙調試一致。
七、打包發佈
1. 生成鴻蒙 APP 包(HAP)
- 點擊 HBuilderX 頂部「發行」→「鴻蒙應用打包」;
- 選擇「調試包(debug)」或「發佈包(release)」;
- 配置鴻蒙簽名信息(需從鴻蒙開發者後台下載簽名證書和 profile 文件);
- 點擊「打包」,生成
.hap包(調試包)或.app包(發佈包)。