在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中可放置插件的资源文件,要注意命名,以防和其它插件命名冲突,建议以插件名开头。

