HarmonyOS鸿蒙Next中启动设备内其他应用的UIAbility(隐式Want启动)

HarmonyOS鸿蒙Next中启动设备内其他应用的UIAbility(隐式Want启动)

启动设备内其他应用的UIAbility(隐式Want启动)

大家先看上篇: https://developer.huawei.com/consumer/cn/forum/topic/0212128088322810117?fid=0101587866109860105

  1. 将多个待匹配的文档应用安装到设备,在其对应UIAbility的module.json5配置文件中,配置skills标签的entities字段和actions字段。

比如我的是

{
  "module": {
    "abilities": [
      {
        ...
        "skills": [
          {
            "entities": [
              "entity.system.default"
            ],
            "actions": [
              "ohos.want.action.viewData"
            ]
          }
        ]
      }
    ]
  }
}
  1. 在调用方want参数中的entities和action需要被包含在待匹配UIAbility的skills配置的entities和actions中。系统匹配到符合entities和actions参数条件的UIAbility后,会弹出选择框展示匹配到的UIAbility实例列表供用户选择使用。
import common from '@ohos.app.ability.common';
let context = getContext(this) as common.UIAbilityContext; // UIAbilityContext
let want = {

//隐式Want启动
//             action: 'ohos.want.action.viewData',
//             // entities can be omitted.
//             entities: ['entity.system.default'],
}

// context为调用方UIAbility的UIAbilityContext
context.startAbility(want).then(() => {

  console.info('Succeeded in starting ability.');
}).catch((err) => {
  console.error(`Failed to start ability. Code is ${err.code}, message is ${err.message}`);
})

然后将两个应用安装,就可以啦。


更多关于HarmonyOS鸿蒙Next中启动设备内其他应用的UIAbility(隐式Want启动)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中启动设备内其他应用的UIAbility(隐式Want启动)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,通过隐式Want启动设备内其他应用的UIAbility,可以使用startAbility方法。首先,构造一个Want对象,设置actionentity等参数,然后调用context.startAbility(want)。例如:

let want = {
    action: "ohos.want.action.view",
    entities: ["entity.system.browsable"],
    uri: "https://www.example.com"
};
this.context.startAbility(want).then(() => {
    console.log("启动成功");
}).catch(err => {
    console.error("启动失败", err);
});

这种方式适用于跨应用启动,无需知道目标应用的具体包名和类名。

回到顶部