HarmonyOS鸿蒙Next中如何获取一个项目中所有的卡片ID(formId)

HarmonyOS鸿蒙Next中如何获取一个项目中所有的卡片ID(formId)

4 回复

更多关于HarmonyOS鸿蒙Next中如何获取一个项目中所有的卡片ID(formId)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


不行哦,在元服务当中能获取到我当前应用配置了的卡片信息,而不是加桌了的卡片信息,

在HarmonyOS鸿蒙Next中,获取项目中所有卡片ID(formId)可以通过FormManager类实现。使用getFormsInfo方法可以获取所有卡片信息,返回的FormInfo对象中包含formId。示例代码如下:

import formInfo from '@ohos.application.formInfo';
import formManager from '@ohos.application.formManager';

let formInfos: Array<formInfo.FormInfo> = await formManager.getFormsInfo();
let formIds: Array<string> = formInfos.map(info => info.formId);

formIds数组将包含项目中所有卡片的ID。

在HarmonyOS Next中获取项目中所有卡片ID(formId)的方法如下:

  1. 通过查询AbilityInfo获取:
import abilityManager from '@ohos.app.abilityManager';

let abilityInfos = abilityManager.getAbilityInfos(bundleName, moduleName);
abilityInfos.forEach(abilityInfo => {
    if (abilityInfo.type === AbilityType.FORM) {
        console.log("Form ID: " + abilityInfo.formId);
    }
});
  1. 通过查询FormInfo获取:
import formHost from '@ohos.app.form.formHost';

let formInfos = await formHost.getFormsInfo(bundleName, moduleName);
formInfos.forEach(formInfo => {
    console.log("Form ID: " + formInfo.formId);
});
  1. 在开发阶段查看:
  • 检查每个卡片的config.json文件中的"formId"字段
  • 或在卡片Ability的onCreate()方法中通过parameters.formId获取
  1. 通过hdc命令查询:
hdc shell aa dump -a -m

注意:需要确保应用已安装并具有相应权限。

回到顶部