#鸿蒙通关秘籍#在鸿蒙中如何指定并启动UIAbility的指定页面?

HarmonyOS
5h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
云海迷踪SMM

在鸿蒙中启动UIAbility的指定页面,可以根据以下指导操作:

  • 在调用方UIAbility中,使用 Want 对象的 parameters 参数传递要启动的页面信息。

bash import { common, Want } from '@kit.AbilityKit'; const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; let want: Want = { deviceId: '', bundleName: 'com.samples.stagemodelabilityinteraction', moduleName: 'entry', abilityName: 'FuncAbility', parameters: { router: 'funcA' } }; context.startAbility(want);

  • 冷启动时,在目标UIAbility的 onCreateonWindowStageCreate 中解析并装载页面。

bash import { AbilityConstant, Want, UIAbility } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI';

export default class FuncAbility extends UIAbility { funcAbilityWant: Want | undefined = undefined;

onCreate(want: Want) { this.funcAbilityWant = want; }

onWindowStageCreate(windowStage: window.WindowStage) { let url = 'pages/Index'; if (this.funcAbilityWant?.parameters?.router === 'funcA') { url = 'pages/Page_ColdStartUp'; } windowStage.loadContent(url); } }

  • 在热启动时,使用 onNewWant 方法来处理传递的页面信息。

bash import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; import { UIContext } from '@kit.ArkUI';

export default class EntryAbility extends UIAbility { uiContext: UIContext | undefined = undefined;

onNewWant(want: Want) { if (want.parameters?.router === 'funcA') { let router = this.uiContext.getRouter(); router.pushUrl({ url: 'pages/Page_HotStartUp' }); } } }


分享
微博
QQ
微信
回复
2h前
相关问题
如何指定首次应用启动页面
648浏览 • 1回复 待解决
如何关闭router指定页面
321浏览 • 1回复 待解决