HarmonyOS鸿蒙Next中app增加AppLinking配置,在h5访问对应的域名地址

HarmonyOS鸿蒙Next中app增加AppLinking配置,在h5访问对应的域名地址 app增加AppLinking配置,在h5访问对应的域名地址,为什么浏览器会跳转到对应的域名地址并且弹出此网站请求打开App的提示,而不是直接唤起app,并且在微信浏览器里点击该地址,需要在右上角选择浏览器打开,弹出选择打开方式,里面才有对应的app

6 回复

开发者你好,参考以下两点:

问题一:

【常见FAQ】 Q:当系统浏览器通过App Linking尝试启动应用程序时,底部为什么会显示一个跳转提示按钮? A:这是系统浏览器新增的一项提示功能,用于提示用户“此网站请求打开App”。

问题二:

【解决方案】

  • 微信拉起应用时,开发者需要先在自己应用的module.json5配置文件配置和微信约定的skills标签:action:wxentity.action.open,参考HarmonyOS微信SDK接入指南常见问题第4点(需开发者自行前往微信官方文档中查看)。

  • 根据隐式Want匹配原理规则,微信与应用约定的标签中只包括actions,并不包括uris。建议单独配置一个skill对象,仅包含微信跳转应用的action,避免与其他业务冲突,导致无法匹配。配置示例如下:

"skills": [
  {
    "entities": [
      "entity.system.home"
    ],
    "actions": [
      "action.system.home"
    ]
  },
  // 新增skill对象,用于微信拉起应用
  {
    "actions": [
      "wxentity.action.open" 
    ]
  },
  // 其他skill对象,用于其他业务场景
  {
    "uris": [
      {
        "scheme": "test"
      }
    ]
  }
]

更多关于HarmonyOS鸿蒙Next中app增加AppLinking配置,在h5访问对应的域名地址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


因为只有系统浏览器可以识别唤起应用的链接。

当H5页面所在域名与AppLinking配置的域名相同,系统会默认在浏览器内继续打开链接(ArkWeb机制限制)。仅当H5域名与AppLinking域名不同时,才会触发应用唤起逻辑。

浏览器跳转APP之前都会弹框询问用户的,无法直接唤起APP。

在HarmonyOS鸿蒙Next中配置AppLinking,需在AppScope的app.json5文件中添加关联域名。具体步骤:在"abilities"的"skills"中配置intent的action为"action.system.view",entities包含"entity.system.browsable",uris设置域名匹配规则如"scheme"、"host"和"path"参数。H5页面通过访问配置的域名即可拉起应用。

在HarmonyOS Next中配置AppLinking后,H5访问对应域名时出现浏览器跳转而非直接唤起App,以及微信浏览器内需手动选择打开方式,主要涉及以下机制:

  1. 浏览器安全策略限制
    现代浏览器(包括微信内置浏览器)为防止随意唤起应用,默认会拦截直接跳转。当H5页面尝试通过AppLinking打开应用时,浏览器会先显示提示栏,需用户手动确认才能继续。这是行业通用规则,并非HarmonyOS特有行为。

  2. 微信环境特殊性
    微信浏览器对跨应用跳转有更严格的限制,通常会屏蔽直接唤起。因此需通过“右上角菜单→浏览器打开”绕开限制,在系统浏览器中触发AppLinking的解析流程。

  3. 配置检查建议

    • 确保AppLinking的关联域名与H5访问地址完全一致
    • 在AndroidManifest.xml中正确声明intent-filter(HarmonyOS Next兼容Android生态)
    • 测试时使用已安装对应App的设备,且App需支持AppLinking解析
  4. 备选方案
    若需优化体验,可结合Universal Links(iOS)和App Links(Android)实现无缝跳转,但需注意平台差异和签名校验要求。

当前现象符合预期行为,无需调整配置。不同浏览器环境的差异属于正常限制。

回到顶部