踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-bokeyuan&ha_sourceId=89000444
开发语言:ArkTs 开发工具:DevEco Studio 5.0.0 ReleaseAPI 版本:API 12
使用 Deep Linking 实现应用间跳转,系统会根据接口中传入的 uri 信息,在本地已安装的应用中寻找到符合条件的应用并进行拉起(当匹配到多个应用时,会拉起应用选择框)。此种方式与 iOS、Android 中的配置 scheme 方式相同,都是通过特定 scheme 的方式拉起指定 APP。
本文演示 A 应用(拉起方)拉起 B 应用(被拉起方)。
一、B 应用(被拉起方)的代码及配置
1、配置 B 应用(被拉起方)的 module.json5 文件
为了能够支持被 A 应用(拉起方)访问,B 应用(被拉起方)需要在 module.json5 配置文件中配置 skills 标签。
说明:skills 标签下默认包含一个 skill 对象,用于标识应用入口。应用跳转链接不能在该 skill 对象中配置,需要创建独立的 skill 对象。如果存在多个跳转场景,需要在 skills 标签下创建不同的 skill 对象,否则会导致配置无法生效。Deep Linking 中的 scheme 取值支持自定义,可以为任意不包含特殊字符、非 ohos 开头的字符串。通常不为 https、http、file,否则会拉起默认的系统浏览器。
2、在 B 应用(被拉起方)中获取并解析 A 应用(拉起方)传入的应用链接
在 B 应用(被拉起方)的 UIAbility 的 onCreate()或者 onNewWant()生命周期回调中,获取、解析 A 应用(拉起方)传入的应用链接。
二、A 应用(拉起方)的代码配置
下面介绍如何使用 openLink()与 startAbility()接口实现应用跳转,以及如何在 Web 组件中实现应用跳转。
1、判断 B 应用(被拉起方)是否安装
① 在 entry 模块的 module.json5 文件中配置 querySchemes 属性,声明想要查询的 URL scheme。
② 调用 bundleManager.canOpenLink()接口。
2、使用 openLink()实现应用跳转
在 openLink 接口的 link 字段中传入目标应用的 URL 信息,并将 options 字段中的 appLinkingOnly 配置为 false。
3、使用 startAbility()实现应用跳转
startAbility 接口是将应用链接放入 want 中,通过调用隐式 want 匹配的方法触发应用跳转。通过 startAbility 接口启动时,还需要调用方传入待匹配的 action 和 entity。
4、使用 Web 组件实现应用跳转
Web 组件需要跳转 DeepLink 链接应用时,可通过拦截回调 onLoadIntercept 中对定义的事件进行处理,实现应用跳转。
(转载自 51CTO,作者:龙儿筝)
