1.制作 HSP
- 创建share动态库: librarytest
- 添加相应的源码文件,如ets ,c++ 等
- 定义需要导出的组件等:在当前模块的根目录的index.ets<作为模块的配置头文件>里面,这样才可以保证外部的模块引用模块里面的内容
- 编译:点击模块文件夹,然后点击菜单栏(build -> make module librarytest); 此刻在工程的第三方目录里面会加入本地的Hsp 目录
2. 如何被外部使用
- 被外面使用前需要作为类似第三方库的方式添加入工程的依赖文件oh- package.json5
devDependencies: {
"librarytest": "file:librarytest",
}
记得 ohpm install
- 在外面模块需要引入的地方import :import {xxxx} from "librarytest"
- 页面路由跳转:(格式化跳转)
router.pushUrl({
url: '@bundle:com.samples.hspsample/librarytest/ets/pages/Menu'
}).then(() => {
console.log('push page success');
Logger.info(TAG, 'push page success');
}).catch((err: BusinessError) => {
Logger.error(TAG, `pushUrl failed, code is ${err.code}, message is ${err.message}`);
})
url 格式: '@bundle:包名(bundleName)/模块名(moduleName)/路径/页面所在的文件名(不加.ets后缀)'
发现路由跳转失败的话,需要把在配置里面把部署部分做如下设置。使得多个模块可以同时编译
在DevEco Studio中点击【Run-Edit Configurations】打开配置项,点击entry模块下的“Deploy Multi Hap”勾选“Deploy Multi Hap Packages”将entry和library模块一起运行,如下所示:
image.png
网友评论