当前位置: 首页 > news >正文

【HarmonyOS 5】鸿蒙App Linking详解

【HarmonyOS 5】鸿蒙App Linking详解

一、前言

HarmonyOS 的 App Linking 功能为开发者提供了一个强大的工具,通过创建跨平台的深度聚合链接,实现用户在不同场景下的无缝跳转,极大地提升了用户转化率和应用的可用性。

其安全性、智能路由和跨平台特性,使其在各种应用场景中都具有广泛的应用前景。无论是社交、电商还是新闻类应用,App Linking 都能够帮助开发者提高用户转化率和应用的活跃度。

通过合理配置和开发,开发者可以充分利用这一功能,为用户打造更加便捷、高效的应用体验。随着 HarmonyOS 生态的不断发展,App Linking 有望成为推动应用创新和用户增长的重要驱动力。

本文将深入探讨 App Linking 的功能、原理以及如何在 HarmonyOS 应用开发中使用它。

二、App Linking 的优势

无缝体验,直达内容
用户通过点击链接直接进入应用内的特定页面,而无需手动在应用中搜索或导航。

无论是扫码直达、短信链接,还是社交平台上的分享链接,用户都能一步到位,获得流畅的使用体验。

例如,在菜谱应用中,用户可以通过点击链接直接打开特定菜谱页面,而无需繁琐的搜索过程,大大节省了时间和操作步骤。

跨平台支持
支持跨平台操作,无论是在手机、平板还是其他 HarmonyOS 设备上,用户都能享受到一致的链接跳转体验。

这种跨平台的兼容性确保了应用能够触达更广泛的用户群体,提升了应用的可访问性。

智能路由与延迟链接
当用户点击链接时,如果目标应用尚未安装,App Linking 会智能引导用户前往应用市场进行下载。

更为出色的是,一旦用户完成安装,首次打开应用时仍能自动跳转到之前点击链接所指向的特定页面。

这一延迟链接的特性,不仅提高了应用的安装转化率,还确保了用户体验的连贯性,不会因为安装过程而中断用户的操作流程。

增强的安全性
HarmonyOS 的包管理子系统在用户点击链接时,会进行严格的端云安全鉴权。

系统会抓取并校验应用的资产配置信息,以此确保链接所指向的应用与域名的关联性合法可靠,有效防止恶意篡改和钓鱼攻击,保护用户的隐私和设备安全。

三、App Linking 的工作原理

App Linking 在传统 Deep Linking 技术的基础上,增加了域名校验环节,从而提升了链接的安全性和可靠性。其工作流程如下:
在这里插入图片描述

四、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;// 根据解析出的参数进行相应的业务逻辑处理}}
}

应用获取链接中的参数,并根据业务需求进行相应的操作,如展示特定内容、执行特定功能等。

相关文章:

  • 理解多智能体深度确定性策略梯度MADDPG算法:基于python从零实现
  • 方形铝壳电芯自动分选机:精准分档与高效生产的创新实践
  • Matlab 短时交通流预测AR模型
  • 零碳园区能源系统-多能互补体系
  • IP协议、以太网包头及UNIX域套接字
  • 1.7 方向导数
  • labview硬件采集<2>——使用布尔控件控制硬件的LED
  • LintCode第42题-最大子数组 II
  • MySQL之GET_JSON_OBJECT函数
  • 七、基于HAL库,实现串口+DMA+状态机通信实现
  • 居逸JY02A无刷电机驱动芯片介绍
  • 获取高德地图JS API的安全密钥和Key的方法
  • dfs第二次加训 详细题解 下
  • k8s监控方案实践(三):部署与配置Grafana可视化平台
  • Spring Boot整合Kafka实战指南:从环境搭建到消息处理全解析
  • 【运维】MacOS蓝牙故障排查与修复指南
  • FreeRTOS的学习记录(基础知识)
  • STM32F103_LL库+寄存器学习笔记12.1 - 串口DMA高效收发实战:引入ringbuffer结构
  • [计算机网络]网络层
  • Matlab 模糊控制节水洗衣机模型
  • 某博主遭勒索后自杀系自导自演,成都警方立案调查
  • 英媒:英国首相住所起火,目前无人伤亡
  • 总没胃口,一吃就饱……别羡慕,也可能是生病了
  • 射箭世界杯上海站摘得两银,中国队新周期冲击韩国缩小差距
  • 德国将不再公布对乌克兰军事支持的细节
  • 巴防空系统击落印度无人机,印称巴方违反停火协议