uni-app 【已解决】uni.chooseImage在app端第一次使用时出现的重复触发授权申请的bug
uni-app 【已解决】uni.chooseImage在app端第一次使用时出现的重复触发授权申请的bug
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.96
手机系统:Android
手机系统版本号:Android 12
手机厂商:vivo
手机机型:Neo3
页面类型:vue
vue版本:vue2
打包方式:云端
项目创建方式:HBuilderX
示例代码:
//从本地或相机获取图片 huoqutupian(index){ const _this = this const sourceType = index === 0 ? [‘camera’] : [‘album’] uni.chooseImage({ count: 1, //默认9 sizeType: [‘original’, ‘compressed’], //可以指定是原图还是压缩图,默认二者都有 sourceType: sourceType, success: function(res) { // TODO 真是上传照片 _this.setData({ imageSrc: res.tempFilePaths[0], }) _this.loadImage();//图片加载 } }); },
//确认是否已获取存储授权 cunchuShouquan(index){ var _this = this plus.android.requestPermissions([‘android.permission.READ_EXTERNAL_STORAGE’], (e) => { if (e.granted.length > 0) {//如果权限被允许 _this.huoqutupian(index) } }) },
我也发现这个问题了,选择视频就没问题
回复 违规昵称4396: 感谢!虽然你给的方案不对,但确实让我搞明白了。我之前只获取了读的权限,而你的方案只获取了写的权限,我测了一下,两个权限都调用的情况下,uni.chooselmage就没有再弹权限获取了,本来这样还是要弹两次的,但是后面突然发现plus.android.requestPermissions是可以同时调用多个权限请求的,所以最终有了这个写法: plus.android.requestPermissions([‘android.permission.READ_EXTERNAL_STORAGE’,‘android.permission.WRITE_EXTERNAL_STORAGE’] 改了之后拿自己手机和同事手机测了一下,都没有问题
哥们你解决了吗?
不行,前两天hbuilder刚更新3.98版本,但是打包后测试还是会弹两次
我上面写法的存储授权那一步改一下就行,多加一个楼上说的’android.permission.WRITE_EXTERNAL_STORAGE’ plus.android.requestPermissions([‘android.permission.READ_EXTERNAL_STORAGE’,‘android.permission.WRITE_EXTERNAL_STORAGE’]