笑看天下无敌手 发表于 6 天前

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

什么是 App Linking

   App 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]
查看完整版本: 【HarmonyOS 5】App Linking 应用间跳转详解