【HarmonyOS 5】App Linking 应用间跳转详解
什么是 App LinkingApp Linking 是一款创建跨平台的深度聚合链接。通过为用户提供无缝的内容欣赏体验,提拔用户转化率。
[*]若用户已安装应用,点击点击链接后将直达应用内指定页面。
[*]若未安装,且已设置跳转应用市场,则跳转应用市场进行下载,待安装完成后用户首次打开应用,仍将跳转至该页面(可查看文章结尾如何设置)。如果未设置跳转应用市场,则自动打开欣赏器加载对应的网页内容。
https://i-blog.csdnimg.cn/img_convert/0ee543e39ad743cd94651f53448e7d09.gif
链接分享
https://i-blog.csdnimg.cn/img_convert/6b911a655d621f11d7cb4ccc8ec77e9e.gif
扫码直达
使用场景
扫码直达、短信链接直达、社交平台卡片分享等场景。
工作原理
https://i-blog.csdnimg.cn/img_convert/a06d47f644447411744fe6ff95d8fd2b.png
如何开发
开发前注意事项:使用 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可查看文章末尾。
https://i-blog.csdnimg.cn/img_convert/a6f2cd1af3b18c0d577600ba3582a164.png
登录后复制 {
"applinking": {
"apps": [
{
"appIdentifier": "你的应用id"
}
]
}
}
[*]1.
[*]2.
[*]3.
[*]4.
[*]5.
[*]6.
[*]7.
[*]8.
[*]9.
4.AGC绑定域名
在第 1 步开通 App Linking 后,选择“应用链接-创建”,填入域名地点进行发布,发布后,若第 3 步的设置文件可正常访问,等待几分钟后看到“乐成”状态,则代表域名设置乐成。若出现其他错误状态,需查抄设置文件是否可被访问。
https://i-blog.csdnimg.cn/img_convert/afb3bb24d13b29724f32901701e624a9.png
https://i-blog.csdnimg.cn/img_convert/e1ba8d342c9ed5dd28d89a2accb03aa0.png
5.项目设置
进入项目标 entry 模块下的 module.json5 文件,新增 App Linking 的 skills 设置。
https://i-blog.csdnimg.cn/img_convert/f2723143db9ee118fb0656d3c07c002e.png
登录后复制 {
"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
}
[*]1.
[*]2.
[*]3.
[*]4.
[*]5.
[*]6.
[*]7.
[*]8.
[*]9.
[*]10.
[*]11.
[*]12.
[*]13.
[*]14.
[*]15.
[*]16.
[*]17.
[*]18.
[*]19.
[*]20.
[*]21.
[*]22.
[*]23.
6.组装聚合链接
上述设置中,path用于准确分流,可用于指定二级地点,当前项目中设置的path为share,即当我们在鸿蒙装备中点击链接 https://www.eeeo.cc/share 后会优先启动应用,当我们必要传递参数时,可使用 ? + & 的情势拼接 KeyValue 即可。
登录后复制 https://www.eeeo.cc/share?pageId=2025&channel=web
[*]1.
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=showall
let 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')
}
}
}
[*]1.
[*]2.
[*]3.
[*]4.
[*]5.
[*]6.
[*]7.
[*]8.
[*]9.
[*]10.
[*]11.
[*]12.
[*]13.
[*]14.
[*]15.
[*]16.
其他
如何获取应用ID
AppGallery Connect,点击“我的项目”,若已创建项目,可直接在首页查看到应用ID。若未创建项目,手动创建后则会自动天生。
https://i-blog.csdnimg.cn/img_convert/1a89fd0e83f7cf4a0840cea4c4199d44.png
如安在应用未安装时点击链接跳转至应用市场
项目标 module.json5 设置完 AppLinking 的 skills 后,等待应用上架,上架后前往 AGC 设置AppLinking 域名的地方,点击“直达应用市场”的选项,开启直达应用市场即可。
https://i-blog.csdnimg.cn/img_convert/84f2b20d774d7e87a19c899bf09a1f60.png
https://i-blog.csdnimg.cn/img_convert/5293823163a14553000d005697043e8a.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]