hpsocket 网站开发,吉安网站建设jajjjc,站长网ppt模板下载,深圳保障性住房新政策1. 模块分类介绍
鸿蒙系统的模块一共分为四种#xff0c;包括HAP两种和共享包两种
HAP#xff08;Harmony Ability Package#xff09;
Entry#xff1a;项目的入口模块#xff0c;每个项目都有且只有一个。feature#xff1a;项目的功能模块#xff0c;内部模式和En…1. 模块分类介绍
鸿蒙系统的模块一共分为四种包括HAP两种和共享包两种
HAPHarmony Ability Package
Entry项目的入口模块每个项目都有且只有一个。feature项目的功能模块内部模式和Entry完全相同就是不承担作为入口的功能。
共享包共享包无法使用UIAbility和其他ExtentionsAbility你可以近似理解成共享包不能使用Android的四大组件
Harmony ArchiveHAR静态共享包在每个引用他的模块里面都会复制一份自己的编译产物。跟随他的引用包一起编译。Harmony Shared PackageHSP动态共享包在所有引用他的模块中只会有一个他的编译产物。他可以自己编译。
UIAbility类比就是Android四大组件中的Activity而我们平时用的带Entry标签的UI组件可以理解为是Fragment或者说是View。 和Android不同的是在鸿蒙系统中UIAbility并不会像Activity中那样频繁被创建我们一般都通过UI组件来进行页面的切换和跳转。
四种不同的包的区分方式查看该module中的src/main/module.json5文件里面的type字段
2. 导入本地模块
导入模块要做三件事
如果是本地模块的话你需要先创建该模块new一个Module出来在全局里面加入该模块有三个不同的操作方式效果都是一样的。 在项目的oh-package.json5的dependencies中添加该模块然后点击界面上方的sync。 直接在你需要的添加该模块的模块的oh-package.json5的dependencies中加入该模块然后他会报错要你ohpm install该模块照做即可。 直接在终端执行ohpm install指令将模块加入。如目标模块的名称为HarLibrary指令就为ohpm install file:./HarLibrary。 在目标模块中引用也就是2.2中提到的在dependencies中添加即可引用。
3. 使用模块内的类
每个模块中的类如果想要被其他模块调用的话需要做以下两部
将该类声明为export。 在该模块的Index.ets文件中添加该类。 这样就可以被其他工程调用了。
4. 跳转模块内的Entry
如果我在共享包里面写了一个ArkUI但是我又想在其他页面中通过跳转的方式打开的话该怎么办呢
router.pushUrl此时的语法为 bundle:包名bundleName/模块名moduleName/路径/页面所在的文件名(不加.ets后缀) 其中包名在项目的AppScope/app.json5文件中 模块名就是你在dependences中引用时取的名字。 之后在编辑配置中打开Deploy Multi Hap然后勾选目标包即可 必须要Build应用才能看效果Preview是不行的。
其他方法
还有一个不算方法的方法就是先将目标页面export出来之后在需要使用该页面的模块中通过一个空的Entry引用该模块来达成一个间接的打开页面的功能如图。 之后只需要打开ModuleIndex就相当于打开了MainPage只能说如果正常跳转遇到了没办法解决的问题就用该办法吧。
参考资料
https://developer.huawei.com/consumer/cn/forum/topic/0208145626180602082