1.new Date跨平台兼容性问题:
在Andriod使用new Date(“2019-08-15 00:00:00”)没有问题,但是在ios下面识别不出来。开发者工具没问题,必须真机
因为IOS下面不能识别这种格式,需要用2019/08/15 00:00:00格式。可以使用正则表达式对做字符串替换,将短横替换为斜杠。
var iosDate= date.replace(/-/g, '/')
2.wx.downloadFile使用前要配置域名:
使用wx.downloadFile下载图片,在开发工具里没问题,用真机体验版打开调试时也没问题,但是在体验版中关闭调试、线上版都会出现问题,返回的错误提示是 url not in domain list,域名未配置
wx.downloadFile({
url: imgUrl,
success(res) {
if (res.statusCode === 200) { }
},
fail(err) {
},
complete(res) {
}
3.wx.canvasToTempFilePath在 draw() 回调里调用该方法才能保证图片导出成功:
const ctx = wx.createCanvasContext('attendCanvasId') // 创建 canvas 的绘图上下文 CanvasContext 对象
ctx.drawImage(url, 0, 0, app.globalData.width, app.globalData.height) //绘制图像到画布
ctx.draw(boolean reserve, function callback) //开始画
第一个参数:本次绘制是否接着上一次绘制。即 reserve 参数为 false,则在本次调用绘制之前 native 层会先清空画布再继续绘制;若 reserve 参数为 true,则保留当前画布上的内容,本次调用 drawCanvas 绘制的内容覆盖在上面,默认 false。
第二个参数:绘画完成后回调
wx.canvasToTempFilePath(Object object, Object this)
把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功。ios和开发者工具没问题,安卓机下获取不到图片地址
ctx.draw(false, function() {
wx.canvasToTempFilePath({
x: 0, //画布x轴起点
y: 0, //画布y轴起点
width: app.globalData.width, //画布宽度
height: app.globalData.height, //画布高度
canvasId: 'attendCanvasId',
success: function (res) {
let base64 = wx.getFileSystemManager().readFileSync(res.tempFilePath, 'base64')
}
})
})
4.swiper组件的current问题导致图片不显示:
使用swiper组件时,切换图片路径数组而引起长度变化。当切换后的数组长度不及切换前的数组长度时,而恰好swiper此时的current记录的位置已经超出了后面的数组的长度,就会出问题
解决办法:只需在swiper上面绑定current属性,然后在改变imgUrls时将current的值变成 0 即可