欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > HarmonyOS开发-鸿蒙UiAbility 组件间跳转

HarmonyOS开发-鸿蒙UiAbility 组件间跳转

2024/10/24 12:25:29 来源:https://blog.csdn.net/m0_71506521/article/details/139499359  浏览:    关键词:HarmonyOS开发-鸿蒙UiAbility 组件间跳转

前言

随着春节假期结束各行各业复产复工,一年一度的春招也持续火热起来。最近,有招聘平台发布了《2024年春招市场行情周报(第一期)》。总体来说今年的就业市场还是人才饱和的状态,竞争会比较激烈。

但是,通过报告我们也能看到让人眼前一亮的信息,比如华为鸿蒙系统对应的人才市场就呈现出“供需两旺”的场景。

不久前华为已经宣布全新HarmonyOS NEXT 鸿蒙星河版将在今年秋天正式和消费者见面,并已经面向开发者开放申请。鸿蒙星河版会有更智能、更极致的原生体验,也标志着鸿蒙迈向其发展的第二阶段。

因此,对于鸿蒙生态建设而言,2024年可谓至关重要,而生态建设的前提,就是要有足够的开发人才。与之对应的,今年春招市场上与鸿蒙相关岗位和人才旺盛的热度,一方面反应了鸿蒙生态的逐渐壮大,另一方面也让人们对鸿蒙下一阶段的发展更具信心。

今天就来跟大家说一说鸿蒙UiAbility 组件间跳转问题

启动应用内的UIAbility :即UiAbility 组件间跳转、交互包括:

一、 同一个模块

●新建一个UIAbility:TestAbility.ts

微信图片_20240102140422.png

●在 modlue.json5中 abilities中添加TestAbility

微信图片_20240102140635.png

import common from '@ohos.app.ability.common'const TAG = "huxiubo" @Entry @Component struct Index {   @State message: string = 'Hello World'   private  context = getContext(this) as common.UIAbilityContext   private  MyNumber: number   private  MyNString: string;// hello = globalThis.hello   eventHub() {this.context.eventHub.emit("event", 1, "huxiubo", "sulijing")this.MyNString = globalThis.MyNStringthis.MyNumber = globalThis.MyNumberconsole.info(TAG, `MyNString, ${ this.MyNString}`);console.info(TAG, `MyNumber, ${ this.MyNumber}`);   }startOtherAbility() {console.info(TAG, `startOtherAbility`);let want = {deviceId: '', // deviceId为空表示本设备bundleName: 'com.example.myapplication',abilityName: 'TestAbility',}try {this.context.startAbility(want).then(() => {console.info(TAG, `startAbility Success`);}).catch((err) => {console.info(TAG, `Failed: ${JSON.stringify(err)}}`);})} catch (error) {console.log("startAbility error: " + error)}   }   build() {Row() {Column() {Text("enter Ability").fontSize(50).fontWeight(FontWeight.Bold).onClick(()=>{this.startOtherAbility()})}.width('100%')}.height('100%')   } }

二、不同模块

1、新建一个模块:右击项目 new->module , 填入 模块名称 modele1

微信图片_20240102142511.png

●2、跳转代码

import common from '@ohos.app.ability.common'const TAG = "huxiubo" @Entry @Component struct Index {   @State message: string = 'Hello World'   private  context = getContext(this) as common.UIAbilityContext   private  MyNumber: number   private  MyNString: string;// hello = globalThis.hello   eventHub() {this.context.eventHub.emit("event", 1, "huxiubo", "sulijing")this.MyNString = globalThis.MyNStringthis.MyNumber = globalThis.MyNumberconsole.info(TAG, `MyNString, ${ this.MyNString}`);console.info(TAG, `MyNumber, ${ this.MyNumber}`);   }startOtherAbility() {console.info(TAG, `startOtherAbility`);let want = {deviceId: '', // deviceId为空表示本设备bundleName: 'com.example.myapplication',abilityName: 'Module1Ability',moduleName: 'module1', // moduleName非必选// parameters: { // 自定义信息//   instanceKey: ge(),// },}try {this.context.startAbility(want).then(() => {console.info(TAG, `startAbility Success`);}).catch((err) => {console.info(TAG, `Failed: ${JSON.stringify(err)}}`);})} catch (error) {console.log("startAbility error: " + error)}   }   build() {Row() {Column() {Text("enter Ability").fontSize(50).fontWeight(FontWeight.Bold).onClick(()=>{this.startOtherAbility()})}.width('100%')}.height('100%')   } }

注意 want,一定要写正确

 let want = {deviceId: '', // deviceId为空表示本设备bundleName: 'com.example.myapplication',abilityName: 'Module1Ability',moduleName: 'module1', // moduleName非必选}

编译运行代码,发现 {“code”:16000001}}

●3 错误代码:1600001,表示未找到,困扰好久,解决办法如下
菜单栏 Run->edit configureation, 选择entry,Deploy Multi Hap,选中 Deploy Multil Hap Packages,添加模块
在这里插入图片描述

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。随着鸿蒙的不断发展以及国家的大力支持,未来鸿蒙职位肯定会迎来一个大的爆发,只有积极应对变化,不断学习和提升自己,我们才能在这个变革的时代中立于不败之地。

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com