就在昨天把老板提的需求写好之后,上传审核提交发布。然后就出现了问题。在用户需要上传图片的时候,只要选择拍照程序就会重新启动。我当场就蒙逼了。小程序的bug还真是数不胜数啊。
下面贴上部分代码:
wx.chooseImage({
count,
sizeType: ['original', 'compressed'],
sourceType: ['camera', 'album']
调试的时候,同事的手机使用了之后直接重新启动,或者卡住不动弹。然而另外两位同事却没啥问题,于是在两台小米8都不行,一台Mix2和Mi10都没问题的情况下,安卓开发组的同事下了判断,有可能是内存不足。调用相机是很占系统内存的,导致了小程序奔溃。
在我反复的看文档都找不到解决问题的办法时,我在论坛上看看有啥解决问题的方法。却发现18年就有帖子说出现这种情况了。但是官方没给出没有解决问题的方法。于是我灰头土脸的回到百度了起来。却没有发现一个有用的。都是教导怎么使用wx.chooseImage的demo。
看着代码我突然发现sourceType同时调用两种类型album+camera会占用较大内存,那么单一调用是不是会好一点。虽然这不是解决问题的方法。但是应该可以让更多的手机兼容一下小程序。
于是我就写了个弹窗
const sourceType = Number(type) === 1 ? ['camera'] : ['album']
wx.chooseImage({
count,
sizeType: ['original', 'compressed'],
sourceType, // camera album
success (res) {
// tempFilePath可以作为img标签的src属性显示图片
const tempFilePaths = res.tempFilePaths
不得不说这效果还是可以的。至少我的小米8兼容了此项做法,皆大欢喜。老板现在要是问起来,接下来的锅让腾讯背上就好。(~ ̄▽ ̄)~