首先我需要在接口链接后拼接图片id,才能获取图片文件流,当我拿到这个文件流的时候,做了个拼接然后再resolve出去。所以我做了个文件流的接口封装,关键代码如下。
url = 'data:image/png;base64,' + wx.arrayBufferToBase64(res.data)
resolve(url)
但是这个图片接口有时是请求不到的,有时请求到了但是什么都不返回,我就加了层判断,方便不同页面根据空url显示默认图片。
在请求到但是什么都没返回时,我做了判断。
let url = ""
If ( !!res.data ) {
url = 'data:image/png;base64,' + wx.arrayBufferToBase64(res.data)
}
resolve(url)
安卓oppo系统在没有数据时,返回的是 “” ;
但是ios在没有数据时,却返回 'data:image/png;base64,' ,导致我在页面中显示不了默认图片。
目前的解决办法是:在页面判断 wx:if={{ url.lenght === 0 || url.lenght === 27 }} 时显示默认图片 ……
为啥会有这个问题呢?有没有什么更好的解决办法啊?我没找到在微信小程序的.js中能用!!转换boolean不生效的解决办法。还有其他很多位置其实也不生效,但我可以用.lenght去解决,接口封装这种没有任何返回的不知道该怎么处理。
工具版本:2.19.4
工具已开启fs6转es5
后端图片接口配置了nginx