blog
blog copied to clipboard
微信小程序的一些坑
1、750rpx并不是全屏,模拟的效果和真机上的差别很大。
2、模拟器支持div、span等元素,真机上不支持。
3、模拟器对css的支持比较完整,真机只支持部分,但是文档没有列出来。
4、不支持file上传图片,只能通过wx.chooseImage,且无法获取图片宽高。
5、canvas只支持context,无法导出base64.
补充几个: 1.setData的时候,如果原始的值,有二级数据的话,直接改变二级数据,是不生效的。 比如:
obj:{
innerObj:{}
}
}
这种数据结构,如果只改变innerObj 是不生效的。 2. 无法delete 数据,这样也是不生效的
delete this.data.obj.innerObj
var obj = this.data.obj;
setData({obj:obj})
3.wx.setNavigationBarTitle必须在onReady中设置 4.1024KB,多一KB都不行 想起来,再补充
0.10.102800版更新
1、可以通过getImageInfo获取图片宽高了,但是却不能跳转页面了。
2、onload事件里面setData没效果了,换成this.data.tempFilePaths = app.globalData.tempFilePaths。
3、上传图片后图片地址不能显示,需要this.globalData.tempFilePaths = res.tempFilePaths[0].split('wxfile://')[1];截掉wxfile://才能显示。
4、canvas导出图片canvasToTempFilePath,没法获取图片,坑坑坑。
1、本地图片无法在css的background显示,只能设在<image>的src
2、canvasToTempFilePath报错canvasToTempFilePath: fail canvas is empty
@zhouwenbin 你好 麻烦问你一下 canvasToTempFilePath: fail canvas is empty 这个问题后来有解决嘛?
@cristaltina 不知道官方解决了没有
@zhouwenbin 额 这个问题我这里好了 之前我一onLoad就调用canvasToTempFilePath,导致这个问题,后来我改当bindtouchend时调用,就ok了,个人猜测是由于没画完就截屏导致的,不造能不能解决你的问题
@cristaltina 我试看看,感谢
setTextAlign 设置文字对齐方式无效啊,有没有人遇到呢
setTextAlign 设置文字对齐方式居中效果无效
canvasToTempFilePath: fail canvas is empty,不清楚什么时候会报这个错,有时候有,有时候没有,和加载是否完成也没关系,因为我不写任何内容,只是用它来显示一张图片,有时也会报这个错。
我今天也遇到了 canvasToTempFilePath: fail canvas is empty 的问题,由于我们的 canvas 是绘制在自定义组件里,可能需要显式指定上下文。查看官方 API 文档 wx.canvasToTempFilePath(OBJECT, this),后来通过传入第二个参数即指定了当前自定义组件的上下文实例,解决了这个问题。