在Studio
中点击顶部菜单File
->New
->Module...
,选择Static Library
,然后输入插件工程名称,完成创建。
如图,在插件工程ets
目录下创建一个ArkTS
文件。
在创建的ArkTS
文件中添加插件类,该类继承于Module
这个基类。
开放给前端的插件方法以method_
开头,如图,showAlert
方法通过异步callback
方式返回结果,systemVersion
方法通过同步方式返回结果。
如图,在插件工程下的Index.ets
中导出插件类。
在插件开发工程ModuleDevProject
的根目录oh-package.json5
中dependencies
字段下配置插件本地依赖,一般以插件名作为key
,如下为插件pluginDemo
配置引用依赖。
如图,在entry
下的module.json
中配置插件信息。
同时在entry
下的build-profile.json5
中buildOption
字段里面配置插件名,如图:
以上配置完成后就可以运行应用,调试插件功能。
在插件开发工程中运行时不需要单独编译插件,如果要编译插件,则可以先选择插件目录,然后在顶部菜单Build
中选择Make Module
,编译后的har
文件在build
下的outputs
下,如图。
建议编译之前选择release
模式,这样编译出来的har
包中的代码默认会进行混淆。
插件包是用于上传到移动工作台上在线编译应用使用,最外层目录以插件名称命名,插件包结构如图,其中target
目录放置插件的har
文件及其它依赖的本地库文件。
module.json
中配置插件名、插件类名和依赖,dependencies
字段用于配置依赖项,其中必须配置插件自身库的引用路径(云编译时target
目录下的库文件会被拷贝到编译工程的libs
目录,所以为file:./libs/PluginDemo.har
),如果插件依赖了其它库,则也需要进行配置,例如以下示例中依赖了@ohos/crypto-js
。
module.json
配置示例:
{
"name": "pluginDemo",
"class": "ModulePluginDemo",
"dependencies": {
"pluginDemo": "file:./libs/PluginDemo.har",
"@ohos/crypto-js": "^2.0.3"
}
}
使用声明式语法定义UI
实现添加、移除视图(fixedOn
参数一般由前端h5
传入,为视图要添加到的目标页面的名称)。
在resources
目录下的rawfile
中可放置插件的资源文件,要注意命名,以防和其它插件命名冲突,建议以插件名开头。