HarmonyOS 鸿蒙Next 跳转到其他app
HarmonyOS 鸿蒙Next 跳转到其他app 我用的Arkts开发,我想实现点击一个按钮跳转到其他app
3 回复
参考 UIAbility组件间交互(设备内)-UIAbility组件-Stage模型应用组件-Stage模型开发指导-应用模型-开发-HarmonyOS应用开发
显式启动:
let context = getContext(this) as common.UIAbilityContext
context.startAbility({
abilityName: '入口AbilityName',
bundleName: '其他应用的bundleName'
})
更多关于HarmonyOS 鸿蒙Next 跳转到其他app的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我这边实测api 9 目前只支持打开手机浏览器app
```javascript
async implicitStartAbility() {
try {
let want = {
// uncomment line below if wish to implicitly query only in the specific bundle.
// bundleName: "com.example.myapplication",
"action": "ohos.want.action.viewData",
// entities can be omitted.
"entities": ["entity.system.browsable"],
"uri": "https://www.baidu.com",
"type": "text/plain"
}
let context = this as common.UIAbilityContext;
await context.startAbility(want)
console.info(`explicit start ability succeed`)
} catch (error) {
console.info(`explicit start ability failed with ${error.code}`)
}
}
在HarmonyOS(鸿蒙Next)中,应用间跳转主要通过Want
机制实现。Want
是鸿蒙系统中用于描述操作意图的对象,可以指定目标应用、操作类型(如打开、分享等)以及传递的数据。通过startAbility
方法启动目标应用。
具体实现步骤如下:
- 定义Want对象:明确目标应用的
bundleName
和abilityName
,并设置操作类型和传递的数据。 - 调用startAbility:使用
startAbility
方法启动目标应用。
示例代码:
import featureAbility from '@ohos.ability.featureAbility';
let want = {
bundleName: "com.example.targetapp",
abilityName: "com.example.targetapp.MainAbility",
uri: "https://example.com"
};
featureAbility.startAbility({
want: want
}).then((data) => {
console.log("Succeed to start ability. Data: " + JSON.stringify(data));
}).catch((error) => {
console.error("Failed to start ability. Error: " + JSON.stringify(error));
});
在跳转前,确保目标应用已安装且bundleName
和abilityName
正确。鸿蒙系统会根据Want
对象找到并启动目标应用,完成跳转。