【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
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。若未创建项目,手动创建后则会自动生成。
相关文章:
【HarmonyOS 5】App Linking 应用间跳转详解
目录 什么是 App Linking 使用场景 工作原理 如何开发 1.开通 App Linking 2.确定域名 3.服务端部署 applinking.json 文件 4.AGC绑定域名 5.项目配置 6.组装聚合链接 7.解析聚合链接中的参数 其他 如何获取应用ID 什么是 App Linking App Linking 是一款创建跨…...
neo4j官方示例
目录 一、准备数据 1.执行查看结果 二、操作 1.find 单个节点 2.同上,已某个属性去查询 3. 指定查询个数 4.条件查询 5.查询某个人出演的电影汇总 6.查询tom出演的电影中,还有其他演员的信息。 7.查询跟电影(Cloud Atlas)有关的演员࿰…...
基于vueflow可拖拽元素的示例(基于官网示例的单文件示例)
效果图 代码 <template><div style"width: 100%;height: calc(100vh - 84px)"><VueFlow :nodes"nodes" :edges"edges" drop"onDrop" dragover"onDragOver" dragleave"onDragLeave"><div cl…...
minio单点登录与集成(免密)
需求:系统A里,需要实现与MINIO单点登录集成,也就是说,登录了系统A,在访问MINIO时不需要再输入用户密码就可以直接访问。 具体场景如下: 在系统A的一个页面里,配置一个按钮链接,点击…...
深入理解 Docker 网络原理:构建高效、灵活的容器网络
在现代软件开发中,Docker 已经成为了容器化技术的代名词,广泛应用于开发、测试和生产环境。Docker 使得开发者能够将应用及其依赖打包成一个轻量级的容器,并通过 Docker 容器化技术来实现高效的部署与管理。 然而,在日常使用 Dock…...
Hutool中的Pair类详解
1. Pair类概述 Hutool工具库中的Pair类是一个简单的键值对数据结构,用于存储两个相关联的对象。它类似于Map的Entry,但更加轻量级,适用于需要临时存储两个相关联数据的场景。 2. Pair类的主要特点 简单轻量:不依赖复杂的数据结…...
没有Mac,我是怎么上传IPA到App Store的?
没有Mac,我是怎么上传IPA到App Store的? 最近赶一个小项目上线,写的是一个Flutter做的App。安卓版本一晚上搞定,iOS上架却差点把人整崩。 不是我技术菜,是实在太麻烦了。最关键的,是我这台Windows笔电根本…...
RISC-V hardfault分析工具,RTTHREAD-RVBACKTRACE
RV BACKTRACE 简介 本文主要讲述RV BACKTRACE 的内部主要原理 没有接触过rvbacktrace可以看下面两篇文章,理解一下如何使用RVBACKTRACE RVBacktrace RISC-V极简栈回溯组件:https://club.rt-thread.org/ask/article/64bfe06feb7b3e29.html RVBacktra…...
c语言if else语句格式(非常详细)
在C语言中,if else 语句是一种常用的条件控制结构,用于根据不同条件执行不同的代码块。 if-else 语句的基本格式 if-else 语句的基本格式如下: if (条件) { // 如果条件为真,执行这里的代码 } else { // 如果条件为假&a…...
Logback官方文档翻译章节目录
Logback官方文档翻译章节目录 第一章 Logback简介 第二章 Logback的架构(一) Logback的架构(二) Logback的架构(三) 持续更新中…...
按摩椅的机芯类型和材质
按摩椅的机芯类型和材质是影响其按摩效果、使用寿命以及舒适度的重要因素。下面我将从这两个方面详细为你解析: 一、按摩椅机芯类型 按摩椅的“机芯”相当于它的“心脏”,决定了按摩手法、力度、覆盖范围等关键性能。 常见机芯类型(按技术发…...
HarmonyOS-hdc远程网络方式连接设备
hdc工具使用手册 1 hdc简介 hdc(OpenHarmony Device Connector)是为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc,该工具需支持部署在Windows/Linux/Mac等系统上与OpenHarmony设备(或模…...
秋招准备——2.跨时钟相关
格雷码异步FIFO跨时钟域处理 格雷码 一、格雷码规律 相邻性:相邻两个数的格雷码只有一位不同,例如: 0000 → 0001(仅最低位变化)0001 → 0011(仅次低位变化)0011 → 0010(仅最低位…...
【开源版】likeshop上门家政系统PHP版全开源+uniapp前端
一.系统介绍 likeshop_上门家政系统,PHP版本更新至2.1.1最新版,全开源,适用于上门家政场景,系统拥有用户端、师傅端、无论运营还是二开都是性价比极高的100%开源家政系统。 二.搭建环境-教程 系统环境:CentOS、 运行…...
Memgraph 的安装教程
目录 Memgraph 安装步骤1. 使用 Docker 安装 Memgraph2. 使用 Memgraph Lab3. 使用 Python 客户端连接 Memgraph Memgraph 安装步骤 1. 使用 Docker 安装 Memgraph Memgraph 可以通过 Docker 快速安装和运行。以下是使用 Docker 安装 Memgraph 的步骤: 安装 Docke…...
华为网路设备学习-21 路由过滤(filter-policy)
一、路由过滤(filter-policy) 1、用于控制路由更新、接收的一个工具 2、只能过滤路由信息,无法过滤LSA 二、路由过滤(filter-policy)与动态路由协议 1、距离矢量路由协议 RIP动态路由协议 交换的是路由表࿰…...
Mac 平台 字体Unicode范围分析器
字体Unicode范围分析器 #include <CoreText/CoreText.h> // CoreText框架头文件,用于字体处理 #include <CoreFoundation/CoreFoundation.h> // CoreFoundation框架头文件 #include <stdio.h> // 标准输入输出 #include…...
Android不能下载Gradle,解决方法Could not install Gradle distribution from.......
外网下载速度太慢导致失败,换成国内镜像,可加速下载: 官网地址:https://services.gradle.org/distributions/ 腾讯云镜像 Gradle下载地址:https://mirrors.cloud.tencent.com/gradle/ 阿里云镜像 Gradle下载地址&…...
树状数组的操作问题--Python
树状数组的操作问题 一、问题引入二、解题步骤1.思维导图2.解题步骤 三、代码实现1.代码2.复杂度分析 四、个人总结 一、问题引入 请编写程序,实现树状数组区间求前缀和、单点修改的操作。 输入格式: 输入首先给出一个正整数 n(2≤n<10^…...
FEKO许可限制
随着科技的飞速发展,电磁仿真软件在多个领域发挥着越来越重要的作用。FEKO作为一款业界领先的电磁仿真软件,广泛应用于通信、雷达、航空航天、电子对抗等领域。然而,为了确保软件使用的合规性与高效性,FEKO设定了相应的许可限制。…...
第5章 深度学习和卷积神经网络
深度学习是人工智能的一种实现方法。本章我们将考察作为深度学习的代表的卷积神经网络的数学结构。 5-1小恶魔来讲解卷积神经网络的结构 深度学习是重叠了很多层的隐藏层(中间层)的神经网络。这样的神经网络使隐藏层具有一定的结构,从而更加…...
window 显示驱动开发-处理内存段(一)
视频内存管理器 (VidMm) 负责管理 GPU 的地址空间。 在此之前,内核模式显示微型端口驱动程序 (KMD) 必须通过使用内存段将 GPU 的地址空间描述为 VidMm。 KMD 创建内存段以概括和虚拟化视频内存资源。 它可以根据硬件支持的存储器类型(例如,…...
QT实现曲线图缩放、拖拽以及框选放大
.h文件 protected: void saveAxisRange();void wheelEvent(QWheelEvent *event) override;void mousePressEvent(QMouseEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mouseReleaseEvent(QMouseEvent *event) override;private:QPoint m_…...
龙虎榜——20250508
上证假阴包阳的走势,量能较昨天有萎缩,在前期压力附近~ 深证这两天假阴包阳的走势,60分钟未突破昨天的高点,缺口也未补等待明天的选择~ 2025年5月8日龙虎榜行业方向分析 一、核心行业方向 军工航天(政策催化地缘驱动…...
SEMI E40-0200 STANDARD FOR PROCESSING MANAGEMENT(加工管理标准)-(三)完结
10 消息服务详情 10.1 本章定义实现加工管理概念所需的消息服务。这些消息已在第8.1节中初步介绍。 协议无关性:这些服务独立于所使用的消息协议,可映射至SECS-II(SEMI E5)或其他类似协议。 10.1.1 消息服务定义内容包括&#…...
算法竞赛进阶指南.次小生成树
目录 题目算法标签: K r u s k a l Kruskal Kruskal, M S T MST MST, 倍增优化, l c a lca lca思路代码*警示后人 题目 356. 次小生成树 算法标签: K r u s k a l Kruskal Kruskal, M S T MST MST, 倍增优化, l c a lca lca 思路 因为要求的是严格次小生成树, 假设最…...
ElasticSearch基本概念
为什么要使用ElasticSearch Elasticsearch 主要为系统提供搜索功能, MySQL 这类传统关系型数据库主要为系统提供数据存储功能 Elasticsearch 的优势 : 支持多种数据类型,非结构化,数值,地理信息。简单的 RESTful AP…...
普通IT的股票交易成长史--20250508晚复盘
声明:本文章的内容只是自己学习的总结,不构成投资建议。价格行为理论学习可参考简介中的几位,感谢他们的无私奉献。 送给自己的话: 仓位就是生命,绝对不能满仓!!!!&…...
SAP 交货单行项目含税金额计算报cx_sy_zerodivide处理
业务背景:SAP交货单只有数量,没有金额,所以开发报表从订单的价格按数量计算交货单的金额。 用户反馈近期报表出现异常: ****2012/12/12 清风雅雨 规格变更 Chg 修改开始 ** 修改原因:由于余数为0时,可能会报错溢出。…...
基于译码器和锁存器的运行逻辑的简易算法
74HC138 def decoder_74hc138(E1, E2, E3, A0, A1, A2):output [1] * 8 # 默认全高电平# 检查使能条件:E1和E2低电平,E3高电平if E1 0 and E2 0 and E3 1:# 计算地址索引(A2为高位,A0为低位)index (A2 <<…...
用电信息采集中的天线种类
一、4G/3G/2G 频率范围“698-960/1710-2700MHz 输入阻抗:50Ω 电压驻波比:<3.0 增益:5dBi/7dBi/9dBi; 824MHz~960MHz频段本体增益≥3.0dBi 1710MHz~2700MHz频段本体增益≥5.0dBi 天线长度225*30mm…...
2025年4月AI算力领域热点事件全景报告
目录 一、政策要闻 01欧洲央行召开会议讨论AI影响 02中国生成式AI备案制落地 03多国政府公布AI基础设施投资计划 04香港发布生成式AI技术及应用指引 05美国出口管制政策影响 06欧盟《人工智能法案》落地 07中国 “东数西算” 工程深化 08美国CHIPS法案争议 09中国发…...
数据结构-非线性结构-二叉树
概述 /** * 术语 * 根节点(root node):位于二叉树顶层的节点,没有父节点。 * 叶节点(leaf node):没有子节点的节点,其两个指针均指向 None 。 * 边(edge)&…...
Android开发补充内容
Android开发补充内容 fragment通信生命周期 Okhttp基本使用websocket Retrofit基本使用 RxJava基本使用定时任务 Hilt基本使用进阶使用例子 组件库Material ComponentsJetpack Compose fragment 通信 fragment于activity通信的一种原生方法是使用Bundle: Bundle …...
Go主要里程碑版本及其新增特性
Go 语言自 2009 年诞生以来,经历了多个里程碑版本的迭代,每个版本都引入了重要特性和改进。以下是 Go 语言的主要版本及其关键特性: Go 1.0 (2012-03-28) 首个稳定版,承诺向后兼容(Go 1 兼容性保证)。核心…...
Cut video with ffmpeg
To cut a snippet from a video based on timestamps like 02:52 to 04:20, the best tool is FFmpeg, which is fast, free, and doesn’t re-encode the video (so it keeps original quality if you don’t want re-encoding). Here’s the command you can run in a termi…...
无刷电机控制算法策略
目录 一、基础控制算法 二、高性能算法 三、无感算法 四、智能算法 五、特殊场景算法 无刷电机的核心控制算法主要包括以下类型: 一、基础控制算法 六步换向法(梯形控制) 通过霍尔传感器检测转子位置,按固定顺序切换…...
LeetCode算法题(Go语言实现)_61
题目 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金…...
Kafka消息不丢失处理
kafka作为消息中间件,吞吐量大(至于为啥吞吐量大,本文不做介绍),所以大家用的多。涉及到异构数据库更换,以及数据预处理后的迁移,基本想到的都是通过kafka。 概览图 我先画个图 生产者到kafka…...
Python+ffmpeg 实现给视频添加字幕
创作灵感 孩子学校经常留作业,需要提交一段录制的视频,视频上要求添加学校、班级、姓名等信息的字幕,手机自带的相机软件字幕添加位置要么只能添加在视频正中,要么无法添加多行文本,要么只能添加在片头或者片尾&#…...
QMK键盘固件自定义指南 - 打造你的专属键盘体验
QMK键盘固件自定义指南 - 打造你的专属键盘体验 🚀 前言 在机械键盘的世界里,QMK固件让你的键盘不再只是简单的输入设备,而是可以按照你的意愿定制的强大工具。本文将深入浅出地介绍如何自定义QMK键盘的行为,从基础概念到高级应…...
Linux-openeuler更换yum镜像源
将 openEuler 系统镜像源更换为华为镜像 以openEuler 24.03 LTS SP1 为例。操作前建议备份原配置文件,并确保系统已联网。 一、确认系统版本与架构 查看系统版本: [rooteulerzy yum.repos.d]# cat /etc/os-releaseNAME"openEuler"VERSION&qu…...
手势、鼠标滑动实现界面切换
手势: #include <QApplication> #include "mainwindow.h"int main(int argc, char *argv[]) {QApplication app(argc, argv);MainWindow window;window.show();return app.exec(); }#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainW…...
什么是变量提升?(形象的比喻)
当然!可以用几个生活中的比喻来形象地解释变量提升: 1. 书架的占位符 想象你有一个书架,但还没放书。 • 变量提升(var): 你先在书架上贴了一个标签(比如写“我的书”)&…...
趣味编程:答案之书
概述:该篇博客主要介绍的是曾经一度风靡全网的答案之书小程序。 目录 1. 效果展示 2. 源码展示 3. 代码逻辑详解 3.1 头文件与全局变量 3.2 main函数 3.3 主循环 3. 4 绘制界面 4. 运行问题 5.小结 1. 效果展示 该小程序是动态的效果, 因此实…...
用kompose将docker-compose文件转换为K8S资源清单
一、什么是kompose Kompose 是什么?它是一个转换工具,可将 Compose (即 Docker Compose)所组装的所有内容转换成容器编排器(Kubernetes 或 OpenShift)可识别的形式。 更多信息请参考 Kompose 官网 Kompos…...
Linux中的防火墙
概述 防火墙通过一系列规则来过滤网络数据包,决定哪些数据包可以进入或离开系统,哪些数据包将被阻止,以此来保护系统免受未经授权的访问、恶意攻击和潜在的安全威胁。 常见的防火墙软件 iptables:是 Linux 系统中常用的防火墙工…...
AI开发跃迁指南(第三章:第四维度1——Milvus、weaviate、redis等向量数据库介绍及对比选型)
1.向量数据库简介 向量数据库(Vector Database)是专门为存储和查询高维向量数据而设计的数据库,主要用于处理由机器学习模型生成的嵌入向量(Embeddings)。它在人工智能(AI)、自然语言处理&…...
深度学习笔记41_调用Gensim库训练Word2Vec模型
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 一、我的环境 1.语言环境:Python 3.8 2.编译器:Pycharm 3.深度学习环境: torch1.12.1cu113torchvision…...
Windows Server 2025 安装AMD显卡驱动
运行显卡驱动安装程序,会提示出问题。但是此时资源已经解压 来到驱动路径 C:\AMD\AMD-Software-Installer\Packages\Drivers\Display\WT6A_INF 打开配置文件,把这两行替换掉 %ATI% ATI.Mfg, NTamd64.10.0...16299, NTamd64.10.0, NTamd64.6.0, NTamd64.…...