收藏
回答

鸿蒙集成微信分享Base64位图片时报错

在分享与收藏/鸿蒙开发手册中,

https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Share_and_Favorites/ohos.html

集成的微信分享,可以正常分享网络图片和网页,但是在使用了开发手册中分享base64图片的代码时,报 

openWeChatWithLink fail by err:Internal error.

分享代码如下

public static shareBase64ImageToWX(imageBase64: string) {
  if (imageBase64) {
    if (imageBase64.indexOf(',')) {
      imageBase64 = imageBase64.split(',')[1];
    }
  }

  let imageObject = new wxopensdk.WXImageObject
  let buf: buffer.Buffer = buffer.from(imageBase64);
  imageObject.imageData = buf.toString('base64', 0, buf.length);

  let mediaMessage = new wxopensdk.WXMediaMessage()
  mediaMessage.mediaObject = imageObject

  let req = new wxopensdk.SendMessageToWXReq()
  req.scene = wxopensdk.SendMessageToWXReq.WXSceneSession
  req.message = mediaMessage

  WXApi.sendReq(getContext() as common.UIAbilityContext, req)
}


报错的微信sdk代码如下:WXAPIFactory.ets :

private openWeChatWithLink(context: common.UIAbilityContext, req?: BaseReq): SendReqResultWrap {
  return new Promise(async (resolve) => {
    const linkOptions: OpenLinkOptions = {
      appLinkingOnly: false,
      parameters: this.makeParameters(req)
    }
    try {
      await context.openLink(kWechatLink, linkOptions, (err, abilityResult) => {
        if (err && err.code != 0) {
          Log.e(kTag, `openWeChatWithLink result err: ${err.message}`)
          return
        }
        this.handleResult(abilityResult)
      })
      resolve(true)
    } catch (e) {
      Log.e(kTag, `openWeChatWithLink fail by err: ${e.message}`)
      resolve(false)
    }
  })
}

而接入demo中并无提供分享base64图片的示例,请问文档中的示例代码是否有误?


最后一次编辑于  1天前
回答关注问题邀请回答
收藏
登录 后发表内容