收藏
回答

鸿蒙sdk用base64微信分享图片总是报参数非法

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

sdk版本:1.0.14

微信版本:1.0.6

手机信息:mate60

API版本:5.0.4(16)

OpenHarmony版本:OpenHarmony 5.0.1



代码如下(官方demo):

let resourceManager = getContext().resourceManager
let imageArray = await resourceManager.getMediaContent($r('app.media.atest0'));

let pixelBuffer = imageArray.buffer as ArrayBuffer;
let imageResource = image.createImageSource(pixelBuffer);
let opts: image.DecodingOptions = { editable: true }

let pixelMap = await imageResource.createPixelMap(opts);

const imagePackerApi: image.ImagePacker = image.createImagePacker();
let packOpts: image.PackingOption = { format: 'image/jpeg', quality: 20 };
imagePackerApi.packing(pixelMap, packOpts).then(async (data: ArrayBuffer) => {
  let imageObject = new wxopensdk.WXImageObject

  let buf: buffer.Buffer = buffer.from(data);
  imageObject.imageData = buf.toString('base64', 0, buf.length);
  // imageObject.uri = await WXShareTool.getPictureUriFromAlbum()
  GFLog.d(TAG, "length = " + imageObject.imageData.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)
})


回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2025-05-15

    你好,若还有问题麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点,bundleid、identifier、appid和opensdk的调用时间点(可以社区私信提供)

    2025-05-15
    有用
    回复
登录 后发表内容