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

【HarmonyOS 5】App Linking 应用间跳转详解

目录

什么是 App Linking

使用场景

工作原理

如何开发

1.开通 App Linking

2.确定域名

3.服务端部署 applinking.json 文件

4.AGC绑定域名 

5.项目配置

6.组装聚合链接

7.解析聚合链接中的参数

其他

如何获取应用ID


什么是 App Linking

App Linking 是一款创建跨平台的深度聚合链接。通过为用户提供无缝的内容浏览体验,提升用户转化率。

  • 若用户已安装应用,点击点击链接后将直达应用内指定页面。
  • 若未安装,且已配置跳转应用市场,则跳转应用市场进行下载,待安装完成后用户首次打开应用,仍将跳转至该页面。如果未配置跳转应用市场,则自动打开浏览器加载对应的网页内容。
链接分享
扫码直达

使用场景

扫码直达、短信链接直达、社交平台卡片分享等场景。

工作原理

如何开发

开发前注意事项:使用 App Linking 需使用手动生成签名,自动签名将无法启动应用。

1.开通 App Linking

  • 登录AppGallery Connect,点击“我的项目”。
  • 在项目列表中打开对应项目。
  • 在左侧导航栏中选择“增长 > App Linking”,进入App Linking页面,点击“立即开通”。

2.确定域名

在配置前需确定域名,并确保域名完成https配置且能正常访问,后续在 AGC 与项目中需进行相关配置。

3.服务端部署 applinking.json 文件

在服务端部署 applinking.json 文件至指定目录,这里我们手动创建即可,确保能通过我们配置的域名地址:https://域名/.well-known/applinking.json 访问到 applinking 配置,如何获取应用ID可查看文章末尾。

{"applinking": {"apps": [{"appIdentifier": "你的应用id"}]}
}

4.AGC绑定域名 

在第 1 步开通 App Linking 后,选择“应用链接-创建”,填入域名地址进行发布,发布后,若第 3 步的配置文件可正常访问,等待几分钟后看到“成功”状态,则代表域名配置成功。若出现其他错误状态,需检查配置文件是否可被访问。

5.项目配置

进入项目的 entry 模块下的 module.json5 文件,新增 App Linking 的 skills 配置。

 示例代码:

{"entities": [// entities必须包含"entity.system.browsable""entity.system.browsable"],"actions": [// actions必须包含"ohos.want.action.viewData""ohos.want.action.viewData"],"uris": [{// scheme须配置为https"scheme": "https",// host须配置为关联的域名,替换为你AGC配置的域名"host": "www.eeeo.cc",// path可选,表示域名服务器上的目录或文件路径,例如www.example.com/path1中的path1// 如果应用只能处理部分特定的path,则此处应该配置应用所支持的path,避免出现应用不能处理的path链接也被引流到应用中的问题,替换为你的二级path,用于精确分流"path": "share"}],// domainVerify须设置为true"domainVerify": true
}

6.组装聚合链接

上述配置中,path用于精确分流,可用于指定二级地址,当前项目中配置的path为share,即当我们在鸿蒙设备中点击链接 https://www.eeeo.cc/share 后会优先启动应用,当我们需要传递参数时,可使用 ? + & 的形式拼接 KeyValue 即可。

https://www.eeeo.cc/share?pageId=2025&channel=web

7.解析聚合链接中的参数

通过聚合链接启动应用后,参数会进入到 Ability 的 onCreate 生命周期的 Want.uri 中,若应用已经启动,则会进入到 onNewWant 生命周期的 Want.uri 中。此时我们解析 uri 中的 KeyValue 即可。

示例代码如下:

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { url } from '@kit.ArkTS';export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {// 从want中获取传入的链接信息。// 如传入的url为:https://www.example.com/programs?action=showalllet uri = want?.uri if (uri) {// 从链接中解析query参数,拿到参数后,可根据自己的业务需求进行后续的处理。let urlObject = url.URL.parseURL(want?.uri);let pageId = urlObject.params.get('pageId')let channel= urlObject.params.get('channel')      }}
}

其他

如何获取应用ID

 登录AppGallery Connect,点击“我的项目”,若已创建项目,可直接在首页查看到应用ID。若未创建项目,手动创建后则会自动生成。

http://www.dtcms.com/a/178364.html

相关文章:

  • CDN 回源:原理、作用与工作流程
  • 排序算法——基数排序
  • YY/T 1732-2020口腔曲面体层X射线模体
  • Nginx1.26.2安装包编译安装并配置stream模块
  • 101alpha_第6个
  • MYSQL 快速解析
  • k8s术语之DaemonSet
  • SEMI E40-0200 STANDARD FOR PROCESSING MANAGEMENT(加工管理标准)-(一)
  • Spark缓存--persist方法
  • 【C语言】文件操作(续)
  • AI原生手机:三大技术阵营的终极对决与未来展望
  • MyBatis(进阶)(xml标签)
  • 【Ubuntu】安裝向日葵远程控制
  • React Native基础环境配置
  • 【办公类-99-05】20250508 D刊物JPG合并PDF便于打印
  • CTF之常见的文件头和文件尾
  • LeetCode 3341到达最后一个房间的最少时间 I 题解
  • 前端三大件---CSS
  • CentOS7将yum源更换为阿里源
  • 数据结构*二叉树
  • 基于STM32、HAL库的FT232RL USB转UART收发器 驱动程序设计
  • 【嵌入式开发-UART】
  • Windows系统安装Cursor与远程调用本地模型QWQ32B实现AI辅助开发
  • 预训练模型实战手册:用BERT/GPT-2微调实现10倍效率提升,Hugging Face生态下的迁移学习全链路实践
  • SQL常用操作大全:复制表、跨库查询、删除重复数据
  • 【Yolo精读+实践+魔改系列】Yolov3论文超详细精讲(翻译+笔记)
  • centos搭建dokcer和vulhub
  • 何不乘东风?利用mcp实现小红书自动发布
  • 2025 后端自学UNIAPP【项目实战:旅游项目】3、API接口请求封装,封装后的简单测试以及实际使用
  • 基于FPGA控制ADC0832双通道采样+电压电流采样+LCD屏幕显示