【HarmonyOS NEXT】解决微信浏览器无法唤起APP的问题

1. 背景

在使用鸿蒙微信打开网页通过使用Deep Linking(scheme)实现应用间跳转唤起APP时,会提示暂无可用打开方式,但是尝试使用系统浏览器、QQ浏览器、UC浏览器时又可以唤起,反复检查module.json5中的skills标签配置,未发现任何问题

2. 解决思路

开始怀疑是不是微信有BUG,或者鸿蒙版微信有白名单机制,但是尝试了微博和小红书,是可以唤起APP的,于是开始尝试在各种鸿蒙论坛和说说引擎中搜索,未发现有人遇到此类问题,o(╥﹏╥)o,直到我把微信的鸿蒙应用开发手册反复看了十遍,直到看到一句话【微信拉起App时,App如何接受来自微信的数据】

3. 尝试解决

在主项目的module.json5 中的actions 增加wxentity.action.open

json 复制代码
{
  "module": {
    // ...
    "abilities": [
      {
        // ...
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home",
              "wxentity.action.open"
            ]
          },
          {
            "actions": [
              // actions不能为空,actions为空会造成目标方匹配失败。
              "ohos.want.action.viewData"
            ],
            "uris": [
              {
                // scheme必选,可以自定义,以link为例,需要替换为实际的scheme
                "scheme": "link",
                // host必选,配置待匹配的域名
                "host": "www.example.com"
              }
            ]
          } // 新增一个skill对象,用于跳转场景。如果存在多个跳转场景,需配置多个skill对象。
        ]
      }
    ]
  }
}

run起来,✿✿ヽ(°▽°)ノ✿,可以唤起了

4. 问题

通过微信浏览器H5唤起,和非微信浏览器onNewWant中接收到的scheme uri 位置有所不同,微信这货额外包装了一层

非微信浏览器唤起
微信浏览器唤起

老老实实针对鸿蒙微信scheme唤起的方式进行参数适配吧🤣🤣🤣😅😅😂😂

5. 其它

关于鸿蒙拉起指定应用的资料可参考这里

鸿蒙应用间跳转:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/inter-app-redirection

鸿蒙应用开发手册:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/ohos.html

相关推荐
秦少游在淮海2 分钟前
id - Android、iOS
android·ios
IT_陈寒2 分钟前
SpringBoot自动配置的坑,把我整不会了
前端·人工智能·后端
赵大仁8 分钟前
Human-in-the-loop:前端确认流与后端幂等
前端·后端·ai·agent·人机协作
恋猫de小郭11 分钟前
超好用 R8 Configuration Analyzer, 优化你的 App 大小和内存
android·前端·flutter
又见情义18 分钟前
Android 13 系统应用裁剪:RK3568平台下的精简之道
android
苦瓜花25 分钟前
【Android】LiveData
android
格林威1 小时前
C#图像处理:使用imagemagick实现像素放大水印转换等多种功能
android·开发语言·图像处理·人工智能·计算机视觉·c#·视觉检测
花先锋队长1 小时前
华为发布全球首款阔直板手机Pura X View,续航轻薄兼得,首发搭载鸿蒙7,为内容而生!
华为·智能手机·harmonyos
雨白8 小时前
深入理解 Java/Kotlin 反射、注解与泛型:从原理到实战
android·架构
赖龙9 小时前
pnpm vs npm
前端·npm·node.js