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方法启动目标应用。

具体实现步骤如下:

  1. 定义Want对象:明确目标应用的bundleNameabilityName,并设置操作类型和传递的数据。
  2. 调用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));
});

在跳转前,确保目标应用已安装且bundleNameabilityName正确。鸿蒙系统会根据Want对象找到并启动目标应用,完成跳转。

回到顶部