踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!developer.huawei.com/consumer/cn…
开发语言:ArkTs
开发工具:DevEco Studio 5.0.0 Release
API版本: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,作者:龙儿筝)