当前位置: 首页 > news >正文

制作网站需要的软件企业网站建设(信科网络)

制作网站需要的软件,企业网站建设(信科网络),求个没封的a站yw1129cm,东莞建设网站制作跨模块引用文件时遇到了一个问题#xff1a; Importing ArkTS files to JS and TS files is not allowed. ArkTSCheck参照官方文档使用#xff1a;Index.ets作为导出配置文件#xff0c;在另一个库中使用遇到此问题 重读官方文档得到解决方法#xff1a;重新创建:…跨模块引用文件时遇到了一个问题 Importing ArkTS files to JS and TS files is not allowed. ArkTSCheck参照官方文档使用Index.ets作为导出配置文件在另一个库中使用遇到此问题 重读官方文档得到解决方法重新创建: Index.ts 作为导出配置文件即可 共享包概述 OpenHarmony提供了两种共享包HARHarmony Archive静态共享包和HSPHarmony Shared Package动态共享包。 HAR与HSP都是为了实现代码和资源的共享都可以包含代码、C库、资源和配置文件最大的不同之处在于HAR中的代码和资源跟随使用方编译如果有多个使用方它们的编译产物中会存在多份相同拷贝而HSP中的代码和资源可以独立编译运行时在一个进程中代码也只会存在一份。 图1 HAR和HSP在APP包中的形态示意图 HSP旨在解决HAR存在的几个问题 多个HAP引用相同的HAR导致的APP包大小膨胀问题。多个HAP引用相同的HARHAR中的一些状态变量无法共享的问题。 HSP的一些约束 HSP及其使用方都必须是Stage模型。HSP及其使用方都必须使用esmodule编译模式。HSP不支持在配置文件中声明abilities、extensionAbilities标签。HSP按照使用场景可以分为应用内HSP和应用间HSP应用间HSP暂不支持。 HAR HARHarmony Archive是静态共享包可以包含代码、C库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP不能独立安装运行在设备上只能作为应用模块的依赖项被引用。 创建HAR模块 通过DevEco Studio创建一个HAR模块详见创建库模块。HAR模块默认不开启混淆能力开启混淆能力需要把HAR模块的build-profile.json5文件中的artifactType字段设置为obfuscation配置如下所示 {apiType: stageMode,buildOption: {artifactType: obfuscation} }artifactType字段有以下两种取值默认缺省为original。 original不混淆。obfuscation混淆目前仅支持uglify混淆。 需要对代码资产进行保护时建议开启混淆能力混淆能力开启后DevEco Studio在构建HAR时会对代码进行编译、混淆及压缩处理保护代码资产。 注意artifactType字段设置为obfuscation时apiType字段必须设置为stageMode因为Stage模型才支持混淆。 HAR开发注意事项 HAR不支持在配置文件中声明abilities、extensionAbilities组件。HAR不支持在配置文件中声明pages页面。HAR不支持在build-profile.json5文件的buildOption中配置worker。FA模型与Stage模型的HAR不支持相互引用。Stage模型的HAR不能引用AppScope内的内容。在编译构建时APPScope中的内容不会打包到HAR中导致HAR资源引用失败。 导出HAR的ArkUI组件、接口、资源 index.ets文件是HAR导出声明文件的入口HAR需要导出的接口统一在index.ets文件中导出。index.ets文件是DevEco Studio默认自动生成的用户也可以自定义在模块的oh-package.json5文件中的main字段配置入口声明文件配置如下所示 {main: index.ets }导出ArkUI组件 ArkUI组件的导出方式与ts的导出方式一致通过export导出ArkUI组件示例如下 // library/src/main/ets/components/MainPage/MainPage.ets Component export struct MainPage {State message: string Hello Worldbuild() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width(100%)}.height(100%)} }HAR对外暴露的接口在index.ets导出文件中声明如下所示 // library/index.ets export { MainPage } from ./src/main/ets/components/MainPage/MainPage导出ts类和方法 通过export导出ts类和方法支持导出多个ts类和方法示例如下所示 // library/src/main/ts/test.ets export class Log {static info(msg) {console.info(msg);} }export function func() {return har func; }export function func2() {return har func2; }HAR对外暴露的接口在index.ets导出文件中声明如下所示 // library/index.ets export { Log } from ./src/main/ts/test export { func } from ./src/main/ts/test export { func2 } from ./src/main/ts/test资源 HAR模块编译打包时会把资源打包到HAR中。在编译构建HAP时DevEco Studio会从HAP模块及依赖的模块中收集资源文件如果不同模块下的资源文件出现重名冲突时DevEco Studio会按照以下优先级进行覆盖优先级由高到低 AppScope仅API9的Stage模型支持。HAP包自身模块。依赖的HAR模块如果依赖的多个HAR之间有资源冲突会按照依赖顺序进行覆盖依赖顺序在前的优先级较高。 引用HAR的ArkUI组件、接口、资源 引用HAR前需要先配置对HAR的依赖配置方式可参考引用HAR文件和资源。 引用HAR的ArkUI组件 HAR的依赖配置成功后可以引用HAR的ArkUI组件。ArkUI组件的导入方式与ts的导入方式一致通过import引入HAR导出的ArkUI组件示例如下所示 // entry/src/main/ets/pages/index.ets import { MainPage } from ohos/libraryEntry Component struct Index {State message: string Hello Worldbuild() {Row() {// 引用HAR的ArkUI组件MainPage()Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width(100%)}.height(100%)} }引用HAR的类和方法 通过import引用HAR导出的ts类和方法示例如下所示 // entry/src/main/ets/pages/index.ets import { Log } from ohos/library import { func } from ohos/libraryEntry Component struct Index {build() {Row() {Column() {Button(Button).onClick((){// 引用HAR的类和方法Log.info(har msg);func();})}.width(100%)}.height(100%)} }引用HAR的资源 通过$r引用HAR中的资源例如在HAR模块的src/main/resources里添加字符串资源在string.json中定义namehello_har和图片资源icon_har.png然后在Entry模块中引用该字符串和图片资源的示例如下所示 // entry/src/main/ets/pages/index.ets Entry Component struct Index {build() {Row() {Column() {// 引用HAR的字符串资源Text($r(app.string.hello_har)).fontSize(50).fontWeight(FontWeight.Bold)// 引用HAR的图片资源Image($r(app.media.icon_har))}.width(100%)}.height(100%)} }应用内HSP开发指导 应用内HSP指的是专门为某一应用开发的HSP只能被该应用内部其他HAP/HSP使用用于应用内部代码、资源的共享。 应用内HSP跟随其宿主应用的APP包一起发布与该宿主应用具有相同的包名和生命周期。 开发应用内HSP HSP模块可以在DevEco Studio中由指定模板创建我们以创建一个名为library的HSP模块为例。基本的工程目录结构大致如下 library ├── src │ └── main │ ├── ets │ │ ├── pages │ │ └── index.ets │ ├── resources │ └── module.json5 └── oh-package.json5 模块module.json5中的type标识模块类型HSP的type是shared。{type: shared }HSP通过在入口文件中导出接口对外提供能力。入口文件在模块oh-package.json5的main中配置。例如 {main: ./src/main/ets/index.ets }导出ts类和方法 通过export导出ts类和方法例如 // library/src/main/ets/utils/test.ts export class Log {static info(msg) {console.info(msg);} }export function add(a: number, b: number) {return a b; }export function minus(a: number, b: number) {return a - b; }对外暴露的接口需要在入口文件index.ets中声明 // library/src/main/ets/index.ets export { Log, add, minus } from ./utils/test导出ArkUI组件 ArkUI组件也可以通过export导出例如 // library/src/main/ets/components/MyTitleBar.ets Component export struct MyTitleBar {build() {Row() {Text($r(app.string.library_title)).fontColor($r(app.color.white)).fontSize(25).margin({left:15})}.width(100%).height(50).padding({left:15}).backgroundColor(#0D9FFB)} }对外暴露的接口需要在入口文件index.ets中声明 // library/src/main/ets/index.ets export { MyTitleBar } from ./components/MyTitleBarHSP中资源使用说明 注意在HSP中通过 r / r/ r/rawfile可以使用本模块resources目录下的资源。 如果使用相对路径的方式例如 在HSP模块中使用Image(“common/example.png”)实际上该Image组件访问的是HSP调用方如entry下的资源entry/src/main/ets/common/example.png。 导出native方法 在HSP中也可以包含C编写的so。对于so中的native方法HSP通过间接的方式导出以导出libnative.so的乘法接口multi为例 // ibrary/src/main/ets/utils/nativeTest.ts import native from libnative.soexport function nativeMulti(a: number, b: number) {return native.multi(a, b); }对外暴露的接口需要在入口文件index.ets中声明 // library/src/main/ets/index.ets export { nativeMulti } from ./utils/nativeTest使用应用内HSP 要使用HSP中的接口首先需要在使用方的oh-package.json5中配置对它的依赖。如果应用内HSP和使用方在同一工程下可以直接本地引用例如 // entry/oh-package.json5 dependencies: {library: file:../library }然后就可以像使用HAR一样调用HSP的对外接口了。 例如上面的library已经导出了下面这些接口 // library/src/main/ets/index.ets export { Log, add, minus } from ./utils/test export { MyTitleBar } from ./components/MyTitleBar export { nativeMulti } from ./utils/nativeTest在使用方的代码中可以这样使用 // entry/src/main/ets/pages/index.ets import { Log, add, MyTitleBar, nativeMulti } from libraryEntry Component struct Index {State message: string Hello Worldbuild() {Row() {Column() {MyTitleBar()Text(this.message).fontSize(30).fontWeight(FontWeight.Bold)Button(add(1, 2)).onClick((){Log.info(add button click!);this.message result: add(1, 2);})Button(nativeMulti(3, 4)).onClick((){Log.info(nativeMulti button click!);this.message result: nativeMulti(3, 4);})}.width(100%)}.height(100%)} }跨包页面路由跳转 若开发者想在entry模块中添加一个按钮跳转至library模块中的menu页面路径为library/src/main/ets/pages/menu.ets那么可以在使用方的代码entry模块下的Index.ets路径为entry/src/main/ets/MainAbility/Index.ets里这样使用 import router from ohos.router;Entry Component struct Index {State message: string Hello Worldbuild() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)// 添加按钮以响应用户点击Button() {Text(click to menu).fontSize(30).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).backgroundColor(#0D9FFB).width(40%).height(5%)// 绑定点击事件.onClick(() {router.pushUrl({url: bundle:com.example.hmservice/library/ets/pages/menu}).then(() {console.log(push page success);}).catch(err {console.error(pushUrl failed, code is ${err.code}, message is ${err.message});})}).width(100%)}.height(100%)}} }其中router.pushUrl方法的入参中url的内容为 bundle:com.example.hmservice/library/ets/pages/menuurl内容的模板为 bundle:包名bundleName/模块名moduleName/路径/页面所在的文件名(不加.ets后缀)
http://www.pierceye.com/news/76095/

相关文章:

  • 灵璧县住房和城乡建设局网站wordpress网页提速
  • 百度网站怎么做视频播放器创意网络
  • 阿里巴巴做特卖的网站建设网银怎么开通使用
  • 电子商务网站建设与实验做电商的网站
  • 国外优秀建筑设计网站北京矿建建设集团有限公司网站
  • 建设网站优点建一个网站的技术解决方案
  • 昆明免费网站制作电脑系统下载官方网站
  • 做餐饮连锁在哪个网站看如何做网站联盟营销
  • 安丘网站建设aqfeifan南京seo优化
  • 网站的数据库怎么建立广告创意设计是什么
  • 创办网站需要哪些步骤营销型网站建设的优缺点
  • 网站建设项目结构分析报告188建站系统源码
  • 论坛网站开发语言优质服务的网站建设
  • wordpress 站点标题网络公司起名大全最新
  • 公司网站建设建议wordpress开发文档(chm)
  • 个人优秀网站seo教程搜索引擎优化入门与进阶
  • 做微商做什么网站比较好网站怎样做才会被百度收录
  • 上海定制网站开发营销推广网站建设工具哪个好
  • 网站流量如何转化为钱福州网站建设培训
  • asp手机网站源码宿州市建设局网站
  • 大连工业大学是一本吗齐三seo顾问
  • 维护网站是什么意思网站开发 怎样做费用结算
  • 微信里有人发做任务网站电商平台设计包括哪些内容
  • 一级做受网站网页app在线制作
  • 天津网站建设基本流程图中国建筑校园招聘
  • 普法网站建设房山建站公司
  • 如何做的网站手机可以用电脑iis做网站
  • 网站代码免费的科技网站模版
  • 北京网站建设服务器维护贵阳网站备案
  • 怎么做二级网站网络营销的特点不包括什么