描述:h5页是用 vue3+vite+vant 写的,拍照上传用的是 vant 的 # Uploader 文件上传 组件,内嵌进小程序的 webview 里 提测打回,测试描述:安卓手机拍照后点击确定会闪退 第一反应是兼容性问题,然后开始一顿查询,结果在微信开放平台果然发现有同样的问题,时间是 2022 年,但是结果,你们懂的。。。此处省略内心一万句话。 解决闪退问题,查询无用,开始自己找方法,突然想起,有没有可能是拍照的图片太大导致,然后查 vant 的文档,推荐使用compressorjs 做图片压缩
/**
* 图片压缩
* @param {File} image 图片
* @param {String} backType 需要返回的类型blob、file、base64
* @param {Number} quality 图片压缩比,数字越小,图片压缩越小
* @return
*/
export const compressorImage = (image: File, backType: string, quality: number) => {
return new Promise((resolve, reject) => {
new Compressor(image, {
quality: quality || 0.8,
success(result) {
if (!backType || backType === 'blob') {
resolve(result);
} else if (backType === 'file') {
const file = new File([result], image.name, { type: image.type });
resolve(file);
} else if (backType === 'base64') {
const reader = new FileReader();
reader.readAsDataURL(result);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
}
},
error(err) {
reject(err);
},
});
});
};
经测试后,有效,闪退解决,
/查询解决办法的时候,看到说有的机型内存不足,或者太旧也会造成闪退,某官方回答,!暂无解决办法!,只能说一句牛批,经测试的手机有一个太卡,就连其他应用都反应半天,依旧会闪退,太古老的手机不兼容。/
**解决完之后,才通知我要求限制图片大小 100M。。。
至此,问题解决
注:此文章为自己解决问题记录所写,可能不适合所有人,不喜勿喷,解决办法可能会参考某些文章,但是时间长了,找不到出处,如有侵权,联系本人,谢谢