在使用华为 荣誉V9 和 Honor 6X时,在使用
plus.zip.compressImage()进行压缩时,如果文件几M以上时,就会出现闪退。不是立即闪退,是压缩一会才闪退。
重现步骤
//baifenbi 是一个参数,从80起,大小不符减20
plus.zip.compressImage({
src:thisPath,
dst:thisNewFileName,
overwrite:true,
quality:90,
width:baifenbi+"%"
},
function(e) {
if(e.size/1024 > 500){
//alert('继续压缩;现大小:'+e.size/1024)
taskZipImg(thisPath, thisNewFileName, baifenbi-20);
}else{
//alert('压缩成功' + e.size/1024)
}
},function(error) {
alert("图片过大,压缩时遇到未知错误.请自己手动压缩再上传");
});
[结果]
闪退
[期望]
成功压缩图片
IDE运行环境说明
HBuilder 最新版本;
[Android版本号]
华为荣誉6X EMUI版本 5.0 Android版本 7.0
华为荣誉V9 EMUI版本8.0.0 Android版本8.0.0
1 个回复
全栈 (作者) - 90后全栈男
发现是那个宽度问题,当图片太大时而设置 e.size/1024 > 500(不够大)时会导致当宽度为20%也不符合,然后就进入了死循环。然后直接用使用PX作为条件了不再检测大小就没事了