vue 微信公众号多图上传 无需后端去微信服务器下载 getLocalImgData不执行的解决办法

微信公众号多图上传 无需后端去微信服务器下载


多图时候getLocalImgData不执行

我们知道安卓端微信公众号受内置浏览器限制;UI框架在部分安卓手机每次只能上传一张照片,我先是使用了vant,很多安卓机不可使用,又局部注册element 然后改写他的方法也不可以实现多图上传;
然后只能乖乖使用微信js-sdk;
在这里插入图片描述


微信提供的思路就是
前端 选择图片 回显图片 图片上传到微信服务器 (保存3天)
后端 去微信服务器根据id下载图片


但是我们接口都已经写好了 而且也不想浪费时间在一个公众号上;
之前的接口传file文件携带参数;

我现在思路
前端
选择图片得到 localId (chooseImage)
根据localId转成base64(getLocalImgData)
根据base64转成file文件
接下来上传到自己服务器
后端 不动


遇到的最大的问题 getLocalImgData 多图时候这个方法不执行;
问题详述:
chooseImage获取图片得到localid数组,遍历数组去调用getLocalImgData 这个方法
但是前期死活不调用,也没有执行成功回调也没有失败回调 甚至没有执行的那个回调,使用checkJsApi检查得到也是没问题的
调试时候发现只传一张是可以得到base64的,我感觉问题可能出现在异步问题上,结果发现还真是
getLocalImgData 必须等上一个结束以后才可以执行下一个,直接遍历调用必出问题


最后写法

    chooseImg (item) {
   
      let that = this;
      this.picObjectId = item.order_id;
      wx.chooseImage({
   
        count: 9, // 默认9
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
        success: function (res) {
   
          that.syncUpload
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值