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跳转和拉起其他应用,可以按照以下步骤操作:
- 配置URL Scheme 在config.json中声明支持的scheme:
"abilities": [
{
"skills": [
{
"actions": ["action.system.home"],
"entities": ["entity.system.home"],
"uris": [
{
"scheme": "myapp",
"host": "detail",
"port": "",
"path": ""
}
]
}
]
}
]
- 检测应用是否安装
使用
canOpenUrl
方法检测:
import featureAbility from '@ohos.ability.featureAbility';
let canOpen = await featureAbility.canOpenUrl({
url: "myapp://detail"
});
if (canOpen) {
// 应用已安装
} else {
// 跳转应用市场
}
- 拉起目标应用
使用
openUrl
方法:
featureAbility.openUrl({
url: "myapp://detail?id=123"
});
- 处理传入的URL
在目标应用的Ability中重写
onCreate
或onNewWant
:
onCreate(want) {
let uri = want.uri;
if (uri) {
// 解析uri参数
}
}
- 跳转应用市场 使用系统预置的market scheme:
featureAbility.openUrl({
url: "market://details?id=com.example.app"
});
注意事项:
- URL Scheme需要全网唯一
- 建议在跳转前先检测目标应用是否安装
- 参数传递建议使用URL编码