简体中文
创建一个空的鸿蒙项目
修改鸿蒙项目根目录文件 oh-package.json5 的依赖 "@dcloudio/uni-app-runtime": "版本号",如下图所示

点击右上角 Sync Now,并等待 Sync 结束
打开鸿蒙项目文件 /entry/src/main/ets/entryability/EntryAbility.ets,增加uni-app sdk初始化逻辑。这里引用了一个distribute.json文件,后续步骤中会讲解如何配置此文件。
import { UniEntryAbility, uni } from '@dcloudio/uni-app-runtime'
import { initUniModules } from '../uni_modules/index.generated'
import BuildProfile from 'BuildProfile'
import distribute from './distribute.json'
initUniModules()
export default class EntryAbility extends UniEntryAbility {
constructor() {
super('HBuilder', {
debug: BuildProfile.DEBUG,
distribute
})
}
}
/entry/src/main/ets/uni_modules/index.generated.ets, 如果目录不存在则需要手动创建移动dist/dev/app-harmony/uni_modules_packages/index.generated.ets文件到鸿蒙项目/entry/src/main/ets/uni_modules/index.generated.ets

移动dist/dev/app-harmony/uni_modules_packages目录下的模块目录到鸿蒙项目/uni_modules目录

编译到鸿蒙时每个uts api的uni_module都会创建一个鸿蒙的静态库。对于静态库有两个概念需要区分一下。
对于一个名称为uni-getBatteryInfo的uni_module,它的moduleName为uni_modules__uni_getBatteryInfo,packageName为@uni_modules/uni-getBatteryInfo。
packageName规则较为简单,给uni_module名称前加上@uni_modules前缀即可
moduleName是在packageName的基础上生成的,移除@符号,将/替换为两个下划线,将-替换为一个下划线
oh-package.json5为所有uni_module注册packageName。
以uni-getBatteryInfo为例,在oh-package.json5文件内dependencies字段下添加如下内容
"@uni_modules/uni-getBatteryInfo": "./uni_modules/uni-getBatteryInfo"
build-profile.json5为所有uni_module注册moduleName。
以uni-getBatteryInfo为例,在build-profile.json5文件内modules数组内添加如下内容
{
"name": "uni_modules__uni_getBatteryInfo",
"srcPath": "./uni_modules/uni-getBatteryInfo"
}
dist/dev/app-harmony/manifest.json的distribute节点移动到鸿蒙项目/entry/src/main/ets/entryability/distribute.json内。与鸿蒙无关的信息可自行移除
/entry/src/main/resources/resfile/apps/HBuilder目录(注意是resfile不是rawfile)。