2019-04-04小程序总结

总结微信小程序项目中遇到的问题

模拟器中日期正常显示,ios系统上显示出问题(IOS为NaN的问题)

原因:ios系统对Date.parse()解析有限制

IOS系统不支持2017-01-01格式的时间导致的,

1
2
3
var mydata = '2017-01-01 11:00:00';
console.log("返回时间:" + mydata);
var time = Date.parse(new Date(mydata)) / 1000;

这样的代码安卓手机开发手机测试都没有问题,唯独IOS获取的日期为NaN,若干次百度调试后发现,原来IOS只识别2017/01/01这样的日期格式,
下面用正则替换2017-01-01日期格式为2017/01/01后问题解决(代码如下)

1
2
3
4
var mydata = '2017-01-01 11:00:00';  
mydata=data.replace(/-/g, '/');  
console.log("返回时间:" + mydata);  
var time = Date.parse(new Date(mydata)) / 1000;

1
var startTime = new Date('2017-12-08 00:00:00');   //ios中starTime为NaN

Android 和 PC端浏览器都没有问题,IOS 浏览器会报NaN,解决方法就是,把中间的空格替换为T

1
2
startTime.replace(' ','T');
var startTime2 = new Date('2017-12-08T00:00:00');

canvas生成海报

1
2
3
4
5
6
7
8
9
10
let canvasImg = ''
await Taro.downloadFile({
url: prodimg
})
.then(res => {
canvasImg = res.tempFilePath

const context = Taro.createCanvasContext("imageCanvas",this.$scope)
context.drawImage(canvasImg,57,10,260,260);
context.save();

ios必须打开调试才能出现图片的问题

添加图片域名到小程序的downloadFile安全域名下

参考

保存图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
saveImage() {
const self = this
Taro.canvasToTempFilePath({
canvasId: 'imageCanvas',
fileType: 'jpg',
success(res) {
Taro.authorize({
scope: 'scope.writePhotosAlbum',
success() {
Taro.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success() {
Taro.showToast({
title: '保存成功!',
icon: 'none',
mask: true,
complete: Taro.hideLoading()
})
console.log("保存成功!");
}
})
}
})
}
}, this.$scope)
}

Button按钮去除边框

button::after{ border: none; }