OpenHarmony开发者论坛
标题:
点击服务卡片如何跳转至指定的页面
[打印本页]
作者:
zhanglin
时间:
2023-8-29 14:45
标题:
点击服务卡片如何跳转至指定的页面
【问题描述】
我的应用中有多个模块也就是多个UIAbility,我想实现通过点击卡片的不同位置,跳转到指定的页面,请问要如何实现呢?
【运行环境】
硬件:rk3568; ROM: 3.2 Beta5; API 9
作者:
gelsang
时间:
2023-8-29 16:18
可以参考文档,配置卡片事件,指定需要跳转的目标Ability,然后在目标UIAbility的onWindowStageCreate()中调用loadContent跳转至指定的page页面。
// 配置卡片事件,指定需要跳转的目标Ability
build() {
Row() {
Column() {
Text(this.TITLE)
.fontSize($r('app.float.font_size'))
}
.width(this.FULL_WIDTH_PERCENT)
}
.height(this.FULL_HEIGHT_PERCENT)
.onClick(() => {
postCardAction(this, {
"action": this.ACTION_TYPE,
"abilityName": this.ABILITY_NAME,
"params": {
"targetPage":'page1'
}
});
})
}
//
复制代码
// onWindowStageCreate()中调用loadContent跳转至指定的page页面
import UIAbility from '@ohos.app.ability.UIAbility';
import hilog from '@ohos.hilog';
import window from '@ohos.window';
let selectPage = ''
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
if (want.parameters.params !== undefined) {
let params = JSON.parse(want.parameters.params);
selectPage = params.targetPage;
}
}
onWindowStageCreate(windowStage: window.WindowStage) {
let targetPage;
// 根据传递的targetPage不同,选择拉起不同的页面
switch (selectPage) {
case 'page1':
targetPage = 'pages/page1';
break;
case 'page2':
targetPage = 'pages/page2';
break;
default:
targetPage = 'pages/Index';
}
windowStage.loadContent(targetPage, (err, data) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
});
}
}
复制代码
可以参考官网文档:
1.
配置卡片的配置文件
2.
使用router事件跳转到指定UIAbility
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5