【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

相关推荐
赵大仁25 分钟前
官网性能优化实战:LCP 3.2s → 2.1s、CLS 0.107 → 0,以及被我推翻的 6 个判断
前端·性能优化·cls·lcp·core web vitals
xiancai_xianyu28 分钟前
Text2SQL落地生产库前,SQL要过哪三道闸
前端·数据库·sql·sql注入·text2sql·ai agent开发·企业级ai框架
小羊没烦恼!41 分钟前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html
史瓦辛格1 小时前
给 DeepSeek Harness 写费用插件:把「这次会话花了多少钱」算准
前端·deepseek
星光不问赶路人1 小时前
Vue 3 + TypeScript 中 enum 的使用实践
前端·vue.js
鸥梨菌Honevid1 小时前
UVM 中 REQ 和 RSP 类型详解:从通信模型到 item_done 与 put_response
java·前端·servlet
IT_陈寒1 小时前
Python多进程共享变量这个坑,差点让我加班到凌晨
前端·人工智能·后端
mmsx1 小时前
Android 插件化架构:40 个 Gradle 模块的拆分、通信与共存
android·kotlin
mmsx1 小时前
Android 不改一行源码:用 AspectJ 做三类拦截
android·kotlin
TST-魚爷1 小时前
易视讯会议摄像头 + 全向麦克风实操讲解稿
android·电脑·钉钉·腾讯会议·zoom会议