HarmonyOS鸿蒙Next中解决拉起微信加企微好友问题

HarmonyOS鸿蒙Next中解决拉起微信加企微好友问题

//link为 微信官方的专属唤起协议 https://work.weixin.qq.com/ca/xxx

let openLinkOptions: OpenLinkOptions = {
    appLinkingOnly: true,
    parameters: {}
  }
  context.openLink(link, openLinkOptions)
    .then(() => {
      hilog.info(DOMAIN, TAG, `open link success.`);
    })
    .catch((err: BusinessError) => {
      hilog.error(DOMAIN, TAG, `open link failed, errCode ${JSON.stringify(err.code)}`);
    })
//module.json5中配置

        "skills": [
          {
            "entities": [
              "entity.system.home",
              "entity.system.browsable"
            ],
            "actions": [
              "ohos.want.action.home",
              "ohos.want.action.viewData",
              "action.system.home",
              "wxentity.action.open"
            ],
            "uris": [
              {
                "scheme": "qqopenapi",
                "host": "$string:QQShareAppId",
                "pathRegex": "\\b(auth|share)\\b",
              },
              {
                "scheme": "https",
                "host": "*",
              }
            ],
          }
        ]

报错open link failed, errCode 16000019


更多关于HarmonyOS鸿蒙Next中解决拉起微信加企微好友问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS Next中拉起微信添加企业微信好友,需使用HarmonyOS的Intent机制。通过创建包含微信特定Action和企微好友添加参数的Intent,调用startAbility()方法启动微信应用。需确保应用已获取必要权限,并在配置文件中声明微信的Ability信息。具体参数需参考微信开放平台的接口文档。

更多关于HarmonyOS鸿蒙Next中解决拉起微信加企微好友问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,错误码16000019通常表示“URI scheme不支持”或“找不到匹配的应用”。您的问题在于尝试通过context.openLink拉起微信/企业微信,但该API主要用于打开Web链接或已明确声明的应用间跳转协议。

对于拉起第三方应用(如微信)的特定功能,正确的做法是使用Want。您需要明确声明并拉起目标应用能响应的特定URI Scheme

以下是修改建议:

  1. 使用Want显式拉起: 微信/企业微信的拉起协议通常是weixin://weixinwork://。您需要构造一个包含此URI的Want,并通过startAbilitystartService来尝试拉起。

    import { common } from '@kit.AbilityKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    let want: common.Want = {
      action: 'ohos.want.action.viewData', // 或使用通用action
      entities: ['entity.system.browsable'],
      uri: 'weixinwork://work.weixin.qq.com/ca/xxx' // 替换为您的完整企业微信链接
    };
    
    let context = getContext(this) as common.UIAbilityContext;
    context.startAbility(want)
      .then(() => {
        hilog.info(DOMAIN, TAG, `start ability success.`);
      })
      .catch((err: BusinessError) => {
        hilog.error(DOMAIN, TAG, `start ability failed, errCode ${err.code}`);
      });
    
  2. 检查module.json5配置: 您当前的uris配置主要针对qqopenapihttps,对weixinwork://weixin://无影响。如果希望您的应用能响应这类协议,才需要配置。对于主动拉起其他应用,通常无需在调用方配置此协议。

  3. 关键点

    • openLink 不适用于未在系统内注册为可处理Web链接的自定义Scheme。
    • 拉起第三方应用应使用Want + uri(指定目标应用的Scheme)。
    • 确保设备上已安装目标应用(微信/企业微信),且其版本支持您调用的协议。
    • 企业微信的专属协议是否有效,需参考其官方开放文档确认格式是否正确。

直接使用包含正确Scheme的Want进行拉起,是解决此类跨应用跳转问题的标准方式。

回到顶部