目录

应用链接说明

uris标签说明

当在module.json5文件的skills字段中声明uris时,主要包含如下字段。

  • 通过浏览器拉起应用页面时,浏览器会将uri中scheme和host中的大写字母自动转化为小写字母,导致无法正确匹配应用。因此建议scheme和host中不要包含大写字母。
  • path、pathStartWith、pathRegex的取值前后均不需要加斜杠/。例如对于应用链接https://developer.huawei.com/consumer/cn/support,path字段应配置为consumer/cn/support,pathStartWith字段可配置为consumer/cn,pathRegex字段可配置为^consumer/cn/support$。

[h2]URL的基本格式

按照配置的字段不同,uris可以拼接为不同的URL表达式。其中,scheme为必选字段,其他字段仅当scheme存在时才有意义。

  • 三方应用组件配置的scheme不能与系统应用重复,否则会导致无法通过该uri拉起三方应用组件。
  • 如果多个应用的URL配置相同,应用跳转时匹配到多个应用,则会拉起应用选择框。为了更好的用户体验,开发者可以通过链接的path字段去区分同一域名下的不同应用,如链接https://www.example.com/path1拉起目标应用1,链接https://www.example.com/path2拉起目标应用2。

[h2]linkFeature标签说明

同一Bundle中声明的linkFeature数量不能超过150个。

目标应用在linkFeature字段中声明功能类型,并通过应用市场上架审核后,可以提升应用跳转体验。主要用于以下两种场景:

  1. 支持系统识别同类应用:当调用方拉起垂类应用(例如导航类应用)时,系统会根据linkFeature字段识别到匹配的应用,并在应用面板中展现。

    值 说明
    AppStorageMgmt 指示清理应用沙箱目录中缓存数据的功能。使用场景详见清理应用沙箱缓存数据场景。
    FileOpen 指示打开处理文件的功能。使用场景详见拉起文件处理类应用。
    Navigation 指示导航功能。使用场景详见拉起导航类应用。
    RoutePlan 指示路线规划功能。使用场景详见拉起导航类应用。
    PlaceSearch 指示地点搜索功能。使用场景详见拉起导航类应用。
    DetailLocation 指示地点详情功能。使用场景详见拉起导航类应用。
    Transfer 指示转账汇款功能。使用场景详见拉起金融类应用。
    CreditCardRepayment 指示信用卡还款功能。使用场景详见拉起金融类应用。
    ComposeMail 指示撰写邮件功能。使用场景详见拉起邮件类应用。
    QueryByFlightNo 指示按航班号查询航班功能。使用场景详见拉起航班类应用。
    QueryByLocation 指示按起降地查询航班功能。使用场景详见拉起航班类应用。
    QueryExpress 指示快递查询功能。使用场景详见拉起快递类应用。
    AppNotificationMgmt 指示应用内通知设置的功能。使用场景详见应用内通知设置快捷入口。
    PrimaryContactMgmt 从API version 23开始,新增支持该字段。指示社交通讯类应用“重要联系人列表”的设置功能。使用场景详见优先通知权益申请。
  2. 指定类型的应用被拉起时免跳转弹框:正常情况下,拉起指定类型的应用时,都会弹出确认是否打开应用的弹窗。如果您的应用有向其他应用提供登录/分享/支付的功能,可以在应用中声明对应的LinkFeature(取值参见下表)。应用通过上架审核后,当其他应用拉起您的应用时将不再弹窗提示。

    值 说明
    Login 指示登录、授权登录等功能。
    Pay 指示支付页面、收银台等功能。
    Share 指示分享功能。

配置示例

[h2]清理应用沙箱缓存数据场景

通过“设置 > 存储”可以选择进入某个应用的应用详情页,该页面默认会包含“清空缓存”选项,用于清除当前应用的所有缓存数据。

如果开发者实现了自定义数据清理页面,并希望能够在应用详情页提供跳转入口,可以通过配置linkFeature字段进行接入。

  1. 在module.json5配置文件中,对实现了数据清理功能的Ability添加如下skills配置。

    其中,linkFeature字段必须配置为AppStorageMgmt,其他字段取值请根据实际情况修改为实际值。

    {
      "name": "ClearAbility",
      "srcEntry": "./ets/clearability/ClearAbility.ets",
      "description": "$string:ClearAbility_desc",
      "icon": "$media:layered_image",
      "label": "$string:ClearAbility_label",
      // ···
      "skills": [
        {
          "uris": [
            {
              "scheme": "storage",
              "host": "developer.huawei.com",
              "path": "clearcache",
              "linkFeature": "AppStorageMgmt"
            }
          ]
        }
      ]
    }
  2. 功能验证。

    1. 在手机的“设置 > 存储”页面,选择当前应用,进入应用详情页。
    2. 点击“前往xx清理数据”的选项,即可跳转至对应的缓存数据清理页面。

效果图如下:

[h2]指定类型的应用被拉起时免跳转弹框

以登录场景为例,介绍指定类型的应用被拉起时如何实现免跳转弹框。

  1. 设置linkFeature属性以声明当前应用支持的特性功能,从而系统可以从设备已安装应用中找到当前支持该特性的应用,登录场景LinkFeature固定为Login。

  2. 设置scheme、host、port、path/pathStartWith属性,与Want中uri相匹配,以便区分不同功能,linkFeature设置为Login。

    "uris": [
      {
        "scheme": "https",
        "host": "developer.huawei.com",
        "path": "consumer",
        "linkFeature": "Login"
      }
    ]
  3. 解析参数并做对应处理。

        UIAbility.onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void

    在参数want.uri中会携带目标方配置的linkFeature对应的uri。