微信小程序 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
})
}
})
本文地址:https://blog.csdn.net/IT837684734/article/details/107945872
推荐阅读
-
详解微信小程序文件下载--视频和图片
-
微信qq小程序下载图片失败提示没授权的原因以及解决方法
-
微信小程序使用image组件显示图片的方法【附源码下载】
-
微信小程序 show-menu-by-longpress base64图片 ios下载图片无效
-
详解微信小程序文件下载--视频和图片
-
微信小程序之将base64图片转为本地图片
-
微信qq小程序下载图片失败提示没授权的原因以及解决方法
-
微信小程序使用image组件显示图片的方法【附源码下载】
-
微信小程序 show-menu-by-longpress base64图片 ios下载图片无效
-
微信小程序 - “本地资源图片无法通过WXSS 获取,可以使用网络图片,或者 base64,或者使用标签” 解决