HarmonyOS鸿蒙Next 5开发中应用如何通过url scheme跳转与拉起各类应用

HarmonyOS鸿蒙Next 5开发中应用如何通过url scheme跳转与拉起各类应用

HarmonyOS 5 应用如何通过Deep Linking拉起应用?实现思路为先检测是否可以打开相关应用,应用已安装则跳转,未安装则打开应用市场下载

3 回复

更多关于HarmonyOS鸿蒙Next 5开发中应用如何通过url scheme跳转与拉起各类应用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next 5中,通过URL Scheme实现应用跳转需使用wantAgent模块。首先在config.json中声明目标应用的scheme。调用wantAgent.trigger()方法,传入包含目标URL Scheme的Want对象即可拉起应用。示例:

import wantAgent from '@ohos.app.ability.wantAgent';

let want = {
  action: 'ohos.want.action.viewData',
  entities: ['entity.system.browsable'],
  uri: 'scheme://path'
};
wantAgent.trigger(want);

系统会根据URI自动匹配并拉起对应应用。需确保目标应用已正确配置URL Scheme。

在HarmonyOS Next中实现应用通过URL Scheme跳转和拉起其他应用,可以按照以下步骤操作:

  1. 配置URL Scheme 在config.json中声明支持的scheme:
"abilities": [
  {
    "skills": [
      {
        "actions": ["action.system.home"],
        "entities": ["entity.system.home"],
        "uris": [
          {
            "scheme": "myapp",
            "host": "detail",
            "port": "",
            "path": ""
          }
        ]
      }
    ]
  }
]
  1. 检测应用是否安装 使用canOpenUrl方法检测:
import featureAbility from '@ohos.ability.featureAbility';

let canOpen = await featureAbility.canOpenUrl({
  url: "myapp://detail"
});
if (canOpen) {
  // 应用已安装
} else {
  // 跳转应用市场
}
  1. 拉起目标应用 使用openUrl方法:
featureAbility.openUrl({
  url: "myapp://detail?id=123"
});
  1. 处理传入的URL 在目标应用的Ability中重写onCreateonNewWant
onCreate(want) {
  let uri = want.uri;
  if (uri) {
    // 解析uri参数
  }
}
  1. 跳转应用市场 使用系统预置的market scheme:
featureAbility.openUrl({
  url: "market://details?id=com.example.app"
});

注意事项:

  • URL Scheme需要全网唯一
  • 建议在跳转前先检测目标应用是否安装
  • 参数传递建议使用URL编码
回到顶部