UniApp 作為跨端開發框架,已支持 HarmonyOS(鴻蒙)多形態設備開發,包括鴻蒙手機、平板、智慧屏、車機等。本文從環境搭建、項目配置、開發適配、調試發佈等維度,詳解 UniApp 開發鴻蒙應用的核心流程。

一、核心前提:UniApp 對鴻蒙的支持範圍

  1. 支持版本
  • HarmonyOS 2.0+(API Version 6+),推薦基於 HarmonyOS 4.0(API Version 10)開發;
  • UniApp 基座要求:HBuilderX 4.0+(必須升級到最新穩定版)。
  1. 支持形態
  • 手機 / 平板(鴻蒙原生應用);
  • 智慧屏(需適配大屏佈局);
  • 車機(需適配車機交互規範);
  • 暫不支持鴻蒙輕量級設備(如穿戴設備)。
  1. 技術底層:UniApp 編譯鴻蒙應用時,會將 Vue 代碼轉換為 ArkTS/JS 代碼,基於鴻蒙原生 SDK 構建,而非 WebView 套殼,性能接近原生。

二、環境搭建

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)

打開 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 調用

UniApp 支持通過 require 直接調用鴻蒙 JS/ArkTS API,核心步驟:

  1. 確認鴻蒙 API 支持 JS 調用(參考鴻蒙 API 文檔);
  2. 平台判斷:uni.getSystemInfoSync().platform === 'harmony'
  3. 調用示例(如文件操作):js
if (uni.getSystemInfoSync().platform === 'harmony') {
  const fileIO = require('@ohos.fileio');
  const path = require('@ohos.file.path');
  // 鴻蒙文件讀寫邏輯
}

(3)權限申請

鴻蒙權限需在 manifest.json 聲明,且運行時動態申請:

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 包(發佈包)。

2. 發佈到鴻蒙應用市場

  1. 登錄鴻蒙開發者聯盟;
  2. 進入「應用發佈」→「創建應用」,填寫應用信息;
  3. 上傳打包生成的發佈包(.app),並完成審核;
  4. 審核通過後,應用即可上架鴻蒙應用市場。

八、常用插件與擴展

  1. UniApp 鴻蒙插件市場:DCloud 插件市場 搜索「harmony」,可獲取鴻蒙原生能力封裝插件;
  2. 鴻蒙原生組件封裝:通過 UniApp 原生插件開發規範,將鴻蒙 ArkTS 組件封裝為 UniApp 插件;
  3. 狀態管理:可使用 Vuex/Pinia,與普通 UniApp 項目一致,無需適配鴻蒙。

九、常見問題

  1. 運行失敗:找不到鴻蒙 SDK解決方案:檢查 HBuilderX 中鴻蒙 SDK 路徑配置,確保 DevEco Studio 已下載對應版本 SDK。
  2. 真機連接不上解決方案:確認設備開啓開發者模式和 USB 調試,安裝鴻蒙設備驅動,重啓 DevEco Studio 服務。
  3. 調用鴻蒙 API 提示 “模塊未找到”解決方案:在 manifest.json 中添加對應模塊依賴,或升級鴻蒙 SDK 版本。
  4. 打包提示簽名失敗解決方案:確認簽名證書、profile 文件與應用包名一致,且未過期。

總結

UniApp 開發 HarmonyOS 應用的核心是「跨端語法 + 鴻蒙原生適配」,通過 UniApp 統一 API 可快速遷移現有項目到鴻蒙,同時通過鴻蒙原生 API 擴展特有能力。開發時需重點關注屏幕適配、權限配置、簽名打包三個環節,即可高效完成鴻蒙應用開發與發佈。