微信小程序 show-menu-by-longpress base64图片 ios下载图片无效

  ios对小程序base64支持不太好,具体原因没有深入研究,反正挺坑的,解决方案为把base64转换为本地图片然后再引用即可。

代码方案如下:

前端代码片段:

      <image   mode="aspectFit "  show-menu-by-  longpress  class="haibaoimg"  src="{{ imgSrc }}"   wx:if='{{ imgSrc.length>0 &&  imgtype =="2"}}'/>

 

 

js代码片段:

util.requestUrl({

        url: '/spread/getMinaCode.e',

        params: {

          activityId: activityId,

          prodOfferId: prodOfferId,

          spreadFlag: spreadFlag,

          pid: pid

        }

      }).then(res => {

         wx.hideLoading();

        if (res.resultCode = "getMinaCodeSuccess") {

          var base64Data = res.resultObject.resultObject;

          /// 通过微信小程序自带方法将base64转为二进制去除特殊符号,再转回base64

          base64Data = wx.arrayBufferToBase64(wx.base64ToArrayBuffer(base64Data.replace(/[\r\n]/g, "")));

          /// 拼接请求头,data格式可以为image/png或者image/jpeg等,看需求

          this.setData({

            imgtype:res.resultObject.resultCode+''

          });

          // this.setData({

          //   imgSrc:'data:image/jpeg;base64,'+  base64Data

          // });

          const fs = wx.getFileSystemManager();

          //定义路径名称

           let codeimg = wx.env.USER_DATA_PATH + '/spreadHaibao.png';

          //将base64图片写入

          let that=this;

          fs.writeFile({

            filePath: codeimg,

            data: base64Data,

            encoding: 'base64',

            success: (res) => {

              //写入成功了的话,新的图片路径就能用了

              console.log(res)

              console.log(codeimg)

              that.src2=codeimg;

              that.setData({

                imgSrc:codeimg

              });

            }

          });

         

        } else {

          wx.showToast({

            title: res.resultDesc || '请求出错',

            icon: 'none',

            duration: 2000,

            mask: true

          })

        }

 

      })

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值