鸿蒙Next app deeplink如何配置
在鸿蒙Next中配置app的deeplink具体需要哪些步骤?我在开发文档中没找到详细的配置说明,能否提供具体的示例代码或配置方法?比如如何定义scheme和host,以及如何确保应用能正确响应deeplink跳转?
2 回复
鸿蒙Next配置deeplink只需三步:
- 在config.json里添加uriScheme,比如"demo"
- 在module.json5里声明skills,配好actions和entities
- 在Ability里重写onCreate,用getIntent().getUri()接住链接
举个栗子:harmonyos://demo/home?page=1 这样就能从外部直接唤醒你的App啦!简单得就像叫外卖~
更多关于鸿蒙Next app deeplink如何配置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next中配置DeepLink(深度链接)主要通过以下步骤实现,允许应用通过特定URL被外部调用:
1. 在 module.json5 中声明Scheme
在应用的配置文件里添加 uri 和 type 字段:
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"skills": [
{
"entities": ["entity.system.home"],
"actions": ["action.system.home"],
"uris": [
{
"scheme": "myapp", // 自定义Scheme名称
"host": "example", // 域名(可选但建议设置)
"port": "8080", // 端口(可选)
"path": "detail" // 路径(可选)
}
]
}
]
}
]
2. 在Ability中解析参数
在对应的Ability中重写 onCreate 方法,通过 want 参数获取URL及参数:
import Ability from '[@ohos](/user/ohos).app.ability.UIAbility';
import Want from '[@ohos](/user/ohos).app.ability.Want';
export default class EntryAbility extends Ability {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
// 获取DeepLink的URI
if (want.uri) {
console.log('DeepLink URI:', want.uri); // 示例:myapp://example:8080/detail?id=123
// 解析参数(需自行实现URL解析逻辑)
const params = new URL(want.uri).searchParams;
const id = params.get('id');
// 根据参数跳转到对应页面
}
}
}
3. 触发DeepLink
- 其他应用调用:通过
startAbility发起请求。 - 测试方式:使用
aa start -a EntryAbility -b ...命令或直接在浏览器中输入myapp://example/detail?id=123(需设备支持)。
注意事项:
- 唯一性:Scheme名称应避免与其他应用冲突。
- 路径匹配:
path可设置为具体路径(如"path": "detail"),支持模糊匹配。 - 安全验证:必要时对参数进行校验,防止恶意调用。
通过以上配置,即可实现鸿蒙Next应用的DeepLink功能,支持从网页或其他应用直接跳转到指定页面。

