HarmonyOS鸿蒙Next应用如何使用App Linking?请提供配置步骤和代码集成示例
HarmonyOS鸿蒙Next应用如何使用App Linking?请提供配置步骤和代码集成示例 App Linking 在传统 Deep Linking 技术的基础上,增加了域名校验环节,从而提升了链接的安全性和可靠性。

那鸿蒙应用如何使用App Linking?请提供配置步骤和代码集成示例
更多关于HarmonyOS鸿蒙Next应用如何使用App Linking?请提供配置步骤和代码集成示例的实战教程也可以访问 https://www.itying.com/category-93-b0.html
一、结论
HarmonyOS 的 App Linking 功能为开发者提供了一个强大的工具,通过创建跨平台的深度聚合链接,实现用户在不同场景下的无缝跳转,极大地提升了用户转化率和应用的可用性。
需要在AGC平台进行应用服务的开通。
其安全性、智能路由和跨平台特性,使其在各种应用场景中都具有广泛的应用前景。无论是社交、电商还是新闻类应用,App Linking 都能够帮助开发者提高用户转化率和应用的活跃度。
二、代码实现和详细解释
(1)开通 App Linking 服务: 开发者登录 AppGallery Connect,进入项目控制台,在 “增长” 选项中找到 “App Linking”,点击开通服务。

配置网址域名: 在开发者的服务器上,需要创建并部署一个名为 applinking.json 的文件。这个文件包含了应用的 APP ID 等重要信息,用于声明该应用与特定域名的关联关系。
例如:
{
"apps": [
{
"appIdentifier": "com.example.harmonyos.app",
"paths": ["/*"]
}
]
}
AGC 绑定域名: 回到 AppGallery Connect 控制台,在 App Linking 的 “应用链接(API>=12 适用)” 页面,填写并发布与应用相关联的网址域名。AGC 会对配置文件进行校验,确保域名与应用的关联合法有效。

用户操作与系统响应 当用户点击一个 App Linking 链接时,系统首先会对链接的域名进行校验。如果校验通过,且目标应用已安装在设备上,系统将直接打开应用并跳转到链接指定的页面。如果目标应用未安装,系统会根据配置,引导用户前往应用市场下载应用。待应用安装完成后,首次打开时,系统会自动识别之前点击的链接,并将用户带到相应的页面。
在 HarmonyOS 应用中实现 App Linking
(1)项目配置 在 HarmonyOS 应用项目的 module.json5 文件中,需要对 App Linking 进行配置。具体来说,需要在 “abilities” 数组下的 “skills” 数组中添加相应的配置项。例如:
{
"module": {
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ts",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"exported": true,
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
"skills": [
{
"entities": ["entity.system.home"],
"actions": ["action.system.home"]
},
{
"entities": ["entity.system.browsable"],
"actions": ["ohos.want.action.viewData"],
"uris": [
{
"scheme": "https",
"host": "www.example.com",
"path": "specific/path",
"domainVerify": true
}
]
}
]
}
]
}
}
在上述配置中,“scheme” 必须为 “https”,“host” 应与在 AGC 中绑定的域名一致,“path” 则指定了应用内可处理的链接路径。通过合理配置 “path”,可以精确控制哪些链接能够引导用户进入应用内的特定页面,避免无关链接的干扰。
(2)解析链接参数 在应用的 Ability(如 EntryAbility)的生命周期回调函数中,需要添加代码来解析传入链接中的参数。例如,在 onCreate 或 onNewWant 生命周期中:
import { AbilityConstant, UIAbility, Want } from '@ohos.ability';
import { url } from '@ohos.net';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
let uri = want?.uri;
if (uri) {
let urlObject = url.parseURL(want?.uri);
let params = urlObject.params;
// 根据解析出的参数进行相应的业务逻辑处理
}
}
}
应用获取链接中的参数,并根据业务需求进行相应的操作,如展示特定内容、执行特定功能等。
更多关于HarmonyOS鸿蒙Next应用如何使用App Linking?请提供配置步骤和代码集成示例的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,使用App Linking需先在AppGallery Connect控制台创建链接,配置关联的HAP包。
配置步骤:
- 在项目的
module.json5文件中,为对应EntryAbility添加skills配置,设置entities和actions以响应链接。 - 在
module.json5的abilities中,为EntryAbility添加metadata,其name为ohos.ability.app_linking,value为在AGC创建的链接URL。
代码集成示例:
在EntryAbility的onCreate生命周期中,通过abilityInfo的metaData获取启动链接参数。
// 示例:获取App Linking参数
onCreate(want, launchParam) {
let appLinkingUrl = want.parameters['ohos.ability.app_linking'];
if (appLinkingUrl) {
// 处理链接逻辑
}
}
在HarmonyOS Next中,App Linking的配置与集成主要分为以下几个步骤:
1. 配置应用关联域名
在项目的 module.json5 文件中,为需要接收App Linking的UIAbility配置关联域名。
{
"module": {
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ts",
"skills": [
{
"entities": ["entity.system.browsable"],
"actions": ["action.system.view"],
"uris": [
{
"scheme": "https",
"host": "www.example.com",
"path": "detail"
}
]
}
]
}
]
}
}
此配置声明了该Ability能够处理指向 https://www.example.com/detail 的链接。
2. 在Ability中接收并处理链接
在对应的UIAbility(如EntryAbility)的 onCreate 或 onNewWant 生命周期回调中,解析传入的Want参数,获取链接数据并进行业务处理。
import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import hilog from '@ohos.hilog';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
// 检查Want中是否包含App Linking信息
if (want.uri) {
let appLinkingUri = want.uri;
hilog.info(0x0000, 'testTag', 'Received App Linking: %{public}s', appLinkingUri);
// 在此处解析URI,例如提取查询参数,并跳转到应用内对应页面
this.handleDeepLink(appLinkingUri);
}
}
onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 当Ability已在后台时,通过新的链接被唤起,会触发此回调
if (want.uri) {
let appLinkingUri = want.uri;
hilog.info(0x0000, 'testTag', 'Received New App Linking: %{public}s', appLinkingUri);
this.handleDeepLink(appLinkingUri);
}
}
private handleDeepLink(uri: string): void {
// 示例:解析URI,假设链接为 https://www.example.com/detail?id=123
try {
let urlObj = new URL(uri);
let params = new URLSearchParams(urlObj.search);
let id = params.get('id'); // 获取 id=123
if (id) {
// 携带参数跳转到应用内具体页面,例如商品详情页
// 具体页面路由逻辑取决于您使用的导航方案(如Router)
hilog.info(0x0000, 'testTag', 'Navigate to detail page with id: %{public}s', id);
}
} catch (error) {
hilog.error(0x0000, 'testTag', 'Failed to parse URI: %{public}s', error.message);
}
}
}
3. 生成App Linking
您可以在服务端或应用内,按照配置的格式生成链接,例如:https://www.example.com/detail?id=123。当用户在设备上点击此链接时,系统会校验域名与应用声明的匹配关系,并通过Want机制将链接分发到您的应用。
关键点说明
- 域名校验:系统会验证链接的
host是否与应用在skills.uris中声明的host一致,这是App Linking安全性的核心。 - 链接格式:链接必须使用HTTPS协议(
scheme: https),路径(path)需要与声明的前缀匹配。例如,声明了path: "detail",则可以处理/detail、/detail/、/detail?id=1等路径。 - 多Ability配置:可以为不同的Ability配置不同的
uri规则,以处理不同模式的链接。
通过以上配置和代码,即可在HarmonyOS Next应用中实现基本的App Linking功能,实现从网页安全、可靠地跳转到指定应用页面。

