
简体中文
- 插件市场的加密uts插件如果没有获得源码授权,则无法在原生工程接入。
- 如果导出的资源文件不包含
uni_modules
,或uni_modules
中的插件均不包含app-harmony
目录可以跳过此章节
鸿蒙上uts插件是单独导出为ets的。
如下文档使用/resource
指代鸿蒙资源输出目录
/entry/src/main/ets/uni_modules/index.generated.ets
, 如果目录不存在则需要手动创建移动/resource/uni_modules/index.generated.ets
文件到鸿蒙项目/entry/src/main/ets/uni_modules/index.generated.ets
并在鸿蒙项目的entry/src/main/ets/entryability/EntryAbility.ets
文件中添加如下代码。
import { initUniModules } from '../uni_modules/index.generated'
initUniModules()
移动/resource/uni_modules
目录下的 uts api 模块目录到鸿蒙项目/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
为所有本地 uts api 的 uni_module 及其他三方依赖注册 packageName。uni-app 编译器会自动在/resource/uni_modules
目录下生成oh-package.json5
文件,该文件包含了所有依赖的信息,可以直接将此文件合并到鸿蒙项目的oh-package.json5
文件内。
以 uni-getBatteryInfo 为例,在oh-package.json5
文件内dependencies
字段下添加如下内容
"@uni_modules/uni-getbatteryinfo": "./uni_modules/uni-getbatteryinfo"
build-profile.json5
为所有本地 uts api 的 uni_module 注册 moduleName。uni-app 编译器会自动在/resource/uni_modules
目录下生成build-profile.json5
文件,该文件包含了所有模块的信息,可以直接将此文件合并到鸿蒙项目的build-profile.json5
文件内。
以 uni-getBatteryInfo 为例,在build-profile.json5
文件内modules
数组内添加如下内容
{
"name": "uni_modules__uni_getbatteryinfo",
"srcPath": "./uni_modules/uni-getBatteryInfo"
}