HarmonyOS 鸿蒙Next卡片如何使用deeplink跳转
HarmonyOS 鸿蒙Next卡片如何使用deeplink跳转
选型API版本
不同版本的API,支持的接口或者语言规范并不完全相同,在鸿蒙官网可以有三种模式可以参考。
API 6下的基于JS的类web开发范式
暂未找到监听web跳转的API接口,无法拦截修改操作。
API 6下的基于Java的开发模式
基于intent实现deeplink跳转,参数为当前的ability实例,想要跳转的应用包名,以及跳转的deeplink的url如:“appmarket://details?id=” + androidPackageName。
public void jumpAndroidApp(Ability ability, String androidPackageName, String url) {
Intent intent = new Intent();
Operation operation = new Intent.OperationBuilder()
.withUri(Uri.parse(url))
.withAction("android.intent.action.VIEW")
.withBundleName(androidPackageName)
.withFlags(Intent.CLONE_BUNDLE | Intent.FLAG_ABILITY_NEW_MISSION | Intent.FLAG_ABILITY_CLEAR_MISSION)
.build();
intent.setOperation(operation);
try {
ability.startAbility(intent);
} catch (Exception e) {
}
}
API 9下基于Arkts的开发模式
基于Want实现deeplink跳转,参数为abilityName和bundleName。
let context = ...; // 当前上下文UIAbilityContext
let want = {
deviceId: '', // deviceId为空表示本设备
bundleName: 'com.example.myapplication', // 必填
abilityName: 'FuncAbility', // 必填
moduleName: 'func', // moduleName非必选
parameters: { // 自定义传递的参数
info: '来自EntryAbility Index页面',
},
}
context.startAbility(want).then(() => {
console.info('Succeeded in starting ability.');
}).catch((err) => {
console.error(`Failed to start ability. Code is ${err.code}, message is ${err.message}`);
})
更多关于HarmonyOS 鸿蒙Next卡片如何使用deeplink跳转的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next卡片如何使用deeplink跳转的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,使用DeepLink实现卡片跳转的步骤如下:
-
定义DeepLink:在
config.json
中为Ability定义uri
,例如"uri": "example://detail"
。 -
创建卡片:在
form_config.json
中配置卡片,并指定跳转的Ability。 -
触发跳转:在卡片的事件处理中,使用
startAbility
方法,传入DeepLink的URI,如startAbility({ uri: "example://detail" })
。 -
处理跳转:在目标Ability的
onCreate
方法中,通过intent.uri
获取DeepLink参数,执行相应逻辑。
通过这些步骤,可以实现HarmonyOS卡片通过DeepLink跳转到指定页面的功能。