HarmonyOS鸿蒙Next中启动设备内其他应用的UIAbility(隐式Want启动)
HarmonyOS鸿蒙Next中启动设备内其他应用的UIAbility(隐式Want启动)
启动设备内其他应用的UIAbility(隐式Want启动)
大家先看上篇: https://developer.huawei.com/consumer/cn/forum/topic/0212128088322810117?fid=0101587866109860105
- 将多个待匹配的文档应用安装到设备,在其对应UIAbility的module.json5配置文件中,配置skills标签的entities字段和actions字段。
比如我的是
{
"module": {
"abilities": [
{
...
"skills": [
{
"entities": [
"entity.system.default"
],
"actions": [
"ohos.want.action.viewData"
]
}
]
}
]
}
}
- 在调用方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
对象,设置action
和entity
等参数,然后调用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);
});
这种方式适用于跨应用启动,无需知道目标应用的具体包名和类名。