HarmonyOS鸿蒙Next中开通App Linking时必使用的域名必须在model.json5中配置好么?

HarmonyOS鸿蒙Next中开通App Linking时必使用的域名必须在model.json5中配置好么? 已经在服务器配置了applinking.json,访问已成功,配置申请applinking服务还是失败了,上架的model.json5中也要配置好uril么

7 回复

是需要的。详细参考 4楼 小伙伴的回复。

这里需要额外补充一点的是应用是需要在国区市场的 AGC 平台上架的。不然 AGC 平台上不会显示 App Linking 的匹配规则的

更多关于HarmonyOS鸿蒙Next中开通App Linking时必使用的域名必须在model.json5中配置好么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


必须同时在AGC云侧和端侧module.json5完成配置,两者缺一不可

云侧配置:通过AGC控制台完成域名关联和发布,服务器通过applinking.json验证归属权

端侧配置:需在module.json5中声明skills字段的uris配置项

{
  "skills": [
    {
      "entities": ["entity.system.browsable"],
      "actions": ["ohos.want.action.viewData"],
      "uris": [
        {
          "scheme": "https",
          "host": "your-domain.com",
          "pathStartWith": "pathPrefix",
          "domainVerify": true
        }
      ]
    }
  ]
}

需满足以下条件:

scheme必须为HTTPS

host与AGC发布的域名完全一致

domainVerify必须设为true

参考文档

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-linking-startup

【问题背景】

  • Q:开通App Linking时必使用的域名必须在model.json5中配置好么?
    • A:需要

以下是module.json5的配置示例

1、在module.json5中配置关联的网址域名

  • 在应用的module.json5文件中进行如下配置,以声明应用关联的域名地址,并开启域名校验开关。
    • “entities"列表中必须包含"entity.system.browsable”。
    • “actions"列表中必须包含"ohos.want.action.viewData”。
    • “uris"列表中必须包含"scheme"为"https"且"host"为域名地址的元素,可选属性包含"path”、“pathStartWith"和"pathRegex”,具体请参见“uris标签说明”。
    • "domainVerify"设置为true,表示开启域名校验开关。

说明

skills标签下默认包含一个skill对象,用于标识应用入口。应用跳转链接不能在该skill对象中配置,需要创建独立的skill对象。

如果存在多个跳转场景,需要在skills标签下创建不同的skill对象,否则会导致配置无法生效。

例如,声明应用关联的域名是www.example.com,则需进行如下配置。

{
  "module": {
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        // 请将exported配置为true;如果exported为false,仅具有权限的系统应用能够拉起该应用,否则无法拉起应用
        "exported": true,
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              //从5.1.1(19)开始,须配置为"ohos.want.action.home"。对于5.1.0(18)及之前版本,请配置为"action.system.home"。
              "ohos.want.action.home"
            ]
          },
          {
            "entities": [
              // entities必须包含"entity.system.browsable"
              "entity.system.browsable"
            ],
            "actions": [
              // actions必须包含"ohos.want.action.viewData"
              "ohos.want.action.viewData"
            ],
            "uris": [
              {
                // scheme须配置为https
                "scheme": "https",
                // host须配置为关联的网址域名
                "host": "www.example.com",
                // path可选,表示域名服务器上的目录或文件路径,例如www.example.com/path1中的path1
                // 如果应用只能处理部分特定的path,则此处应该配置应用所支持的path,避免出现应用不能处理的path链接也被引流到应用中的问题
                "path": "path1"
              }
            ],
            // domainVerify须设置为true
           "domainVerify": true
          }
          // 若有其他跳转能力,如推送消息跳转、NFC跳转,可新增一个skill对象,防止与App Linking业务冲突
        ]
      }
    ]
  }
}

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

我昨天看文档是需要的,

在HarmonyOS Next中,开通App Linking功能时使用的域名必须在model.json5文件中配置。该文件用于声明应用的能力和权限,其中域名配置确保App Linking能正确关联应用和网络资源。未配置可能导致功能无法正常使用。

是的,在HarmonyOS Next中开通App Linking服务时,必须在应用的model.json5文件中配置好域名。即使服务器端已正确部署applinking.json并可以访问,如果model.json5中未声明相关域名,审核或服务开通仍会失败。这是因为系统需要验证应用对域名的所有权和关联性,确保链接能正确跳转到目标应用。请检查并补充model.json5中的uri配置,确保与服务器域名一致。

回到顶部