收藏
回答

wx.shareFileMessage 分享图片后无法识别文件类型?

我有这么一个场景:使用 canvas 绘制了二维码图片,然后使用  uni.canvasToTempFilePath 保存为临时文件,最后通过 wx.shareFileMessage 分享图片到好友,一切进行得很顺利,没有任何报错。就是图片发给好友后 文件类型显示?问号,应该时无法识别文件类型。

安卓端真机运行

代码如下:

onShare(e) {
  const that = this
  uni.canvasToTempFilePath({
     x: 0,
     y: 0,
     width: that.canvasWidth,
     height: that.canvasHeight,
     destWidth: that.qrWidth,
     destHeight: that.qrHeight,
     canvasId: that.canvasId,
     fileType: 'jpg',
     success (res) {
      console.log(res)
      // 到这里时正常的的, tempFilePath 已经保存到本地
      let tempFilePath = res.tempFilePath;
      // 必须要 加这玩意 ,否则触发不了  wx.shareFileMessage,我也不知道为什么??
       wx.showActionSheet({
        itemList: ['分享文件'],
        success: function(res) {
        if (res.tapIndex === 0) {
         wx.shareFileMessage({
           fileName: '二维码.jpg',
           filePath: tempFilePath,
           success: function(res) {
             // 分享时成功的 就是 显示?未知文件
             console.log('分享成功', res)
            },
           fail: function(res) {
             console.log('分享失败', res)
           }
           })
           }
         }
       })     
     }
   })
}


手机安卓端:


但是电脑端显示正常:

怎么解决?uni.canvasToTempFilePath 已经是临时文件,难道再要 还要 wx.downloadFile 下载一次,再 wx.shareFileMessage 分享吗?再说了, wx.downloadFile 也不能下载 weixin:// 协议啊?

还有一个更为愚蠢得 办法 就是 把 uni.canvasToTempFilePath 得到得临时文件上传到服务器,再通过 wx.downloadFile 把服务器的 文件下载到本地,最后在 wx.shareFileMessage 分享给好友。。

就差这个没做了。


最后一次编辑于  2023-05-20
回答关注问题邀请回答
收藏
登录 后发表内容