当存在多个Ability,一个UIAbility拉起新的Ability时,在多任务窗口会显示多个Ability,这时候我们想对每一个Ability设置独立的label(多窗体的title)时,应该如何操作?

静态(标签)配置(适合固定label)

module.json5文件:在abilities或extensionAbilities标签下添加label字段:

"abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        
      },
      {
        "name": "EntryAbility1",
        "srcEntry": "./ets/entryability1/EntryAbility1.ets",
        "description": "$string:EntryAbility1_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility1_label",
        "startWindowIcon": "$media:startIcon",
        "exported": true,
        "startWindowBackground": "$color:start_window_background"
      }
    ]

然后在string.json文件中进行资源定义

{
  "string": [
    {
      "name": "EntryAbility_label",
      "value": "主页面"
    }
  ]
}

这时候拉起的Ability会显示配置的label名称。

代码动态设置(多用于小程序等)

1、在使用Want进行跳转时设置跳转参数:parameters,设置如下:

let want: Want = {
            bundleName: 'com.test.testmodules', // 应用唯一标识
            moduleName: 'entry',
            abilityName: 'EntryAbility1', // 目标Ability名称
            parameters:{ // 跳转携带参数
              label:'ssss'  // label名称随意设置,没有严格要求使用字段
            }
          };
          this.context.startAbility(want); // 触发跳转

2、在Ability的onCreate中获取跳转携带的参数。

onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    const label = want.parameters?.label as string  // 获取跳转携带数据
    this.context.setMissionLabel(label).then(() => { // 设置Ability的label
      console.info('success');
    }).catch((err: BusinessError) => {
      let code = (err as BusinessError).code;
      let message = (err as BusinessError).message;
    });
  }

被拉起的Ability的label被设置成ssss,效果如下:
在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐