收藏
回答

wx.showShareImageMenu如何分享base64格式的图片?

目前后台返回了base64格式的数据 现在需要分享这个base64的图片

wx.showShareImageMenu 需要传入的是本地路径或者临时路径

于是我先用 wx.getFileSystemManager.writeFile 将base64图片保存到了本地 得到图片本地路径 http://usr/img1.png 此时在开发工具console.log打印出这个地址后,可以直接点开该图片

然后调用

          wx.showShareImageMenu({

            path: http://usr/img1.png

          })

出现报错 errMsg: "showShareImageMenu:fail cancel"

但我使用保存图片至相册接口 却是成功的 所以这个本地路径http://usr/img1.png应该是正确的

然后我使用了 官网demo

发现 他使用 wx.downloadFile 后获取的 图片路径是 http://tmp/ZT2H21ioRmu4ef5c5befa9ad9544378cb0339c3696af.jpg 这是应该是个临时路径

于是 我也使用           wx.downloadFile({url: http://usr/img1.png}) 试图获取 临时路径 但是返回的tempFilePath依旧是http://usr/img1.png

然后就卡住了 不知道该如何处理 了

最后一次编辑于  2021-06-18
回答关注问题邀请回答
收藏

1 个回答

  • 拾忆
    拾忆
    2021-06-18

    分享卡片的图片资源要么用网络资源,要么用本地资源,你用临时文件的图片是不行的,因为别的用户打开图片的时候并没有你临时文件里的那个图片,微信也不会存储你的分享图片。

    2021-06-18
    有用
    回复 15
    • 道道
      道道
      2021-06-18
      官方文档中写的是这个api支持本地路径和临时路径,网络路径应该反而不支持的吧
      2021-06-18
      回复
    • 道道
      道道
      2021-06-18
      并且用过writeFile后获取到的也应该是本地路径了。所以无从下手了
      2021-06-18
      回复
    • 拾忆
      拾忆
      2021-06-18回复道道
      上面看错了,你这个是直接分享图片,按照文档的话是要用本地路径才行,你直接用 wxfile://tmp 的路径传到showShareImageMenu 里就行,开发者工具应该是不支持的,但是在小程序中运行是可以的,不需要再外面去downloadFile本地临时文件。
      2021-06-18
      回复
    • 道道
      道道
      2021-06-18回复拾忆
      因为这是一个base64的图片  所以 我先使用wx.getFileSystemManager.writeFile保存到本地  返回的是http://usr/img1.png这个本地路劲,可以直接打开并看到图片,但调用showShareImageMenu分享的时候就报错了。
      2021-06-18
      回复
    • 拾忆
      拾忆
      2021-06-18回复道道
      你用手机测试,电脑上的临时路径和手机的不一样,wxfile://tmp 是手机上的。
      2021-06-18
      回复
    查看更多(10)
登录 后发表内容