为整个卡片添加点击事件。当点击卡片内容时卡片服务跳转指定页面,其它区域根据业务需要,拉起应用页面。具体跳转操作如下:
在UIAbility中接收router事件并获取参数,根据传递的params不同,选择拉起不同的页面。
// EntryAbility.ets
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
export default class EntryAbility extends UIAbility {
private selectPage: string = '';
private currentWindowStage: window.WindowStage | null = null;
// 获取router事件中传递的targetPage参数
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
if (want.parameters !== undefined) {
let params: Record<string, string> = JSON.parse(JSON.stringify(want.parameters));
this.selectPage = params.targetPage;
}
}
// 如果UIAbility已在后台运行,在收到Router事件后会触发onNewWant生命周期回调
onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
if (want.parameters?.params !== undefined) {
let params: Record<string, string> = JSON.parse(JSON.stringify(want.parameters));
this.selectPage = JSON.parse(params.params).message
}
if (this.currentWindowStage !== null) {
this.onWindowStageCreate(this.currentWindowStage);
}
}
onWindowStageCreate(windowStage: window.WindowStage): void {
let targetPage: string='pages/Index';
if(this.selectPage=='PageB'){
targetPage='pages/PageB'
}
if (this.currentWindowStage === null) {
this.currentWindowStage = windowStage;
}
windowStage.loadContent(targetPage, (err) => {
if (err.code) {
return;
}
});
}
}