count: 1,
sizeType: ['original'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: function (res) {
uni.compressImage({
src: res.tempFilePaths[0],
quality: 60,
success: res => {
const uploadTask = uni.uploadFile({
url: url,
filePath: res.tempFilePath,
name: 'file',
header: {
'Authorization': 'Bearer ' + uni.getStorageSync('token')
},
success: (uploadFileRes) => {
let u_data = JSON.parse(uploadFileRes.data)
if(u_data.status == 200) {
editUserAvatar({avatar: u_data.data.data}).then(edit_res => {
if(edit_res.status == 200) {
that.$store.state.userData.avatar = u_data.data.data
} else {
uni.showToast({
icon: 'none',
title: '修改失败,请稍后重试!'
})
}
})
} else {
uni.showToast({
icon: 'none',
title: '上传失败,请稍后重试!'
})
}
}
})
that.viewProgress = true
uploadTask.onProgressUpdate((res) => {
that.progress = res.progress
if (res.progress >= 100) {
that.viewProgress = false
}
})
}
})
}
})```

- 发布:2021-09-10 10:47
- 更新:2021-10-19 10:59
- 阅读:2110
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10.0.19041.450
HBuilderX类型: 正式
HBuilderX版本号: 3.2.3
手机系统: Android
手机系统版本号: Android 11
手机厂商: 一加
手机机型: 7T PRO
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
手机中图片多一点,7000张以上,少的话好像没问题,之后调起图片选择api,手机系统是Android11
手机中图片多一点,7000张以上,少的话好像没问题,之后调起图片选择api,手机系统是Android11
预期结果:
调起API快速显示相册,长时间等待选择图片,无系统弹出无响应弹框
调起API快速显示相册,长时间等待选择图片,无系统弹出无响应弹框
实际结果:
加载图片较慢(3-5s),加载图片期间不能返回,加载图片后5-10s出现无响应系统弹窗,点击等待后可以继续使用,但是有这个弹窗很麻烦。
加载图片较慢(3-5s),加载图片期间不能返回,加载图片后5-10s出现无响应系统弹窗,点击等待后可以继续使用,但是有这个弹窗很麻烦。
bug描述:
正常调用uni.chooseImage(OBJECT) API,进入相册选择图片(图片大概在6-7千左右),默认打开的是所有图片分类,加载图片需要等待3-5s左右,加载显示出图片后大概5-10s后系统层弹出 无响应,但是点击等待可以继续使用。
猜测是因为调起选择图片时,APP持续等待触发了系统层无响应事件,希望能够解决和优化图片选择,很重要的API,看到社区有人询问但是没人回答,就很难过。
5 个回复
最佳回复
DCloud_Android_ST
HX3.2.9已修复该问题
DCloud_Android_ST
你好 请试用一下https://www.html5plus.org/doc/zh_cn/gallery.html#plus.gallery.pick 看看是否还会卡很久
上码 (作者)
还是那种,10s内弹出无响应
2021-09-10 12:32
上码 (作者)
好像不单单是我这个手机的型号,看别人手机也有这种问题,照片多的话必会出现无响应,照片少的话没啥问题
2021-09-10 12:35
DCloud_Android_ST
回复 1***@qq.com: 手机设备中都是什么图片 理论图片数量不会对图片预览有影响才对
2021-09-10 12:35
上码 (作者)
回复 DCloud_Android_ST: 正常的截图照片,还有一些应用内部的素材图,显示预览图比较慢,几秒之后就弹出无响应了,同品牌手机不同型号照片少的时候测试没有弹出无响应,社区看到别的品牌手机android11 也有这种情况
2021-09-10 12:41
上码 (作者)
回复 DCloud_Android_ST: https://ask.dcloud.net.cn/question/120660 这个我联系他了,他那边最后也没解决,只能硬着头皮用了
2021-09-10 12:43
上码 (作者)
回复 DCloud_Android_ST: 或者有没有其他选择图片的方式,插件市场有个支付宝扫码插件里面选择相册是打开文件系统,那个就没问题,但是那个是和文件混在一起的
2021-09-10 12:45
DCloud_Android_ST
回复 1***@qq.com: 好的 我们研究研究
2021-09-10 12:49
上码 (作者)
回复 DCloud_Android_ST: 好的
2021-09-10 12:59
上码 (作者)
回复 DCloud_Android_ST: 另外一个安卓机 一加8Tpro 2700多张照片,一切正常
2021-09-10 13:10
上码 (作者)
回复 DCloud_Android_ST: 刚试着把一些应用内部的素材小图删掉之后,就可以正常使用了,删除了3000多张小图,你们测试的时候 可以试一下多放点2020 5050 150 * 150之类的小图
2021-09-10 13:27
DCloud_Android_ST
回复 1***@qq.com: 好的
2021-09-10 14:36
青阳_1900
和之前的问题 https://ask.dcloud.net.cn/question/128641 类似,我这边是用户反馈选择相册会闪退,某些用户必现,但是友盟的日志一直采集不到
青阳_1900
身边有台 realme 的安卓机,不会闪退,但是打开的时候会等待5秒左右才出现图片列表,本地相册差不多8k张图片。
2021-09-10 12:58
上码 (作者)
回复 青阳_1900: 应该跟我这情况一样,我手机里6千多张图片,我朋友手机几百张图片没啥问题
2021-09-10 13:02
上码 (作者)
市场里面有三方原生插件,可以选择图片,但是都收费,就没没有尝试了
2021-09-10 13:03
青阳_1900
回复 1***@qq.com: 看了 uni.chooseImage 的源码,最终实现唤起的是hmlt5plus的 plus.gallery.pick 也是原生实现,所以他上面让你直接用 pick 其实想缩小问题范围,根因还是原生实现存在性能问题,优化没做好
2021-09-10 13:10
DCloud_Android_ST
问题已确认 下个版本会修复该问题
1***@qq.com
确实,10s左右弹出无响应,还有在选择较大图片时,APP会崩溃自动重启