点击服务卡片如何跳转至指定的页面 精华

妮巴~😘 显示全部楼层 发表于 2023-8-29 14:45:20

【问题描述】
我的应用中有多个模块也就是多个UIAbility,我想实现通过点击卡片的不同位置,跳转到指定的页面,请问要如何实现呢?

【运行环境】
  硬件:rk3568;  ROM:  3.2 Beta5;  API 9





您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论1

hyacinth养花人

沙发 发表于 2023-8-29 16:18:10
可以参考文档,配置卡片事件,指定需要跳转的目标Ability,然后在目标UIAbility的onWindowStageCreate()中调用loadContent跳转至指定的page页面。
  1. // 配置卡片事件,指定需要跳转的目标Ability
  2.   build() {
  3.     Row() {
  4.       Column() {
  5.         Text(this.TITLE)
  6.           .fontSize($r('app.float.font_size'))
  7.       }
  8.       .width(this.FULL_WIDTH_PERCENT)
  9.     }
  10.     .height(this.FULL_HEIGHT_PERCENT)
  11.     .onClick(() => {
  12.       postCardAction(this, {
  13.         "action": this.ACTION_TYPE,
  14.         "abilityName": this.ABILITY_NAME,
  15.         "params": {
  16.           "targetPage":'page1'
  17.         }
  18.       });
  19.     })
  20.   }  
  21.   
  22.   //
复制代码

  1. // onWindowStageCreate()中调用loadContent跳转至指定的page页面
  2. import UIAbility from '@ohos.app.ability.UIAbility';
  3. import hilog from '@ohos.hilog';
  4. import window from '@ohos.window';

  5. let selectPage = ''

  6. export default class EntryAbility extends UIAbility {
  7.   onCreate(want, launchParam) {
  8.     if (want.parameters.params !== undefined) {
  9.       let params = JSON.parse(want.parameters.params);
  10.       selectPage = params.targetPage;
  11.     }
  12.   }

  13.   onWindowStageCreate(windowStage: window.WindowStage) {
  14.     let targetPage;
  15.     // 根据传递的targetPage不同,选择拉起不同的页面
  16.     switch (selectPage) {
  17.       case 'page1':
  18.         targetPage = 'pages/page1';
  19.         break;
  20.       case 'page2':
  21.         targetPage = 'pages/page2';
  22.         break;
  23.       default:
  24.         targetPage = 'pages/Index';
  25.     }
  26.       windowStage.loadContent(targetPage, (err, data) => {
  27.       if (err.code) {
  28.         hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
  29.         return;
  30.       }
  31.       hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
  32.     });
  33.   }
  34. }

复制代码

可以参考官网文档:
1. 配置卡片的配置文件
2. 使用router事件跳转到指定UIAbility

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部