上码
上码
  • 发布:2021-09-10 10:47
  • 更新:2021-10-19 10:59
  • 阅读:728

【报Bug】uniapp选择图片API uni.chooseImage(OBJECT) 打开相册后大概5-10之间系统弹出无响应,点击等待可正常使用

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10.0.19041.450

HBuilderX类型: 正式

HBuilderX版本号: 3.2.3

手机系统: Android

手机系统版本号: Android 11

手机厂商: 一加

手机机型: 7T PRO

页面类型: vue

nvue编译模式: fast

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

                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  
                                }  
                            })  
                        }  
                    })  
                }  
            })```

操作步骤:

手机中图片多一点,7000张以上,少的话好像没问题,之后调起图片选择api,手机系统是Android11

预期结果:

调起API快速显示相册,长时间等待选择图片,无系统弹出无响应弹框

实际结果:

加载图片较慢(3-5s),加载图片期间不能返回,加载图片后5-10s出现无响应系统弹窗,点击等待后可以继续使用,但是有这个弹窗很麻烦。

bug描述:

正常调用uni.chooseImage(OBJECT) API,进入相册选择图片(图片大概在6-7千左右),默认打开的是所有图片分类,加载图片需要等待3-5s左右,加载显示出图片后大概5-10s后系统层弹出 无响应,但是点击等待可以继续使用。  

猜测是因为调起选择图片时,APP持续等待触发了系统层无响应事件,希望能够解决和优化图片选择,很重要的API,看到社区有人询问但是没人回答,就很难过。
2021-09-10 10:47 负责人:无 分享
已邀请:

最佳回复

DCloud_Android_ST

DCloud_Android_ST

HX3.2.9已修复该问题

DCloud_Android_ST

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

像素方舟_青阳

像素方舟_青阳

和之前的问题 https://ask.dcloud.net.cn/question/128641 类似,我这边是用户反馈选择相册会闪退,某些用户必现,但是友盟的日志一直采集不到

  • 像素方舟_青阳

    身边有台 realme 的安卓机,不会闪退,但是打开的时候会等待5秒左右才出现图片列表,本地相册差不多8k张图片。

    2021-09-10 12:58

  • 上码 (作者)

    回复 像素方舟_青阳: 应该跟我这情况一样,我手机里6千多张图片,我朋友手机几百张图片没啥问题

    2021-09-10 13:02

  • 上码 (作者)

    市场里面有三方原生插件,可以选择图片,但是都收费,就没没有尝试了

    2021-09-10 13:03

  • 像素方舟_青阳

    回复 1***@qq.com: 看了 uni.chooseImage 的源码,最终实现唤起的是hmlt5plus的 plus.gallery.pick 也是原生实现,所以他上面让你直接用 pick 其实想缩小问题范围,根因还是原生实现存在性能问题,优化没做好

    2021-09-10 13:10

DCloud_Android_ST

DCloud_Android_ST

问题已确认 下个版本会修复该问题

1***@qq.com

1***@qq.com

确实,10s左右弹出无响应,还有在选择较大图片时,APP会崩溃自动重启

要回复问题请先登录注册