uni.chooseImage({
count: 1, //默认9
sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
sourceType: ["album"], // 从相册选择
success: function (res) {
const src = res.tempFilePaths[0];
emit("confirm", src);
},
fail: function () {
console.log("album err");
}
5 个回复
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
不想弹第二次,可以先判断该权限是否被拒绝,如果拒绝过了,就不执行uni.chooseImage
龙朕
第一次弹窗就是在调用了uni.chooseImage()方法之后,中间过程判断不了
wwwzzz (作者)
用上面那位兄弟的方法可以
2023-04-26 09:21
龙朕
回复 wwwzzz: 第一次调用之前怎么判断权限?我试了在第一次调用chooseImage之前调用uni.getAppAuthorizeSetting()返回是默认没给权限,也就是连第一次让用户选择的机会都没有。
{
"cameraAuthorized": "denied",
"microphoneAuthorized": "denied",
"notificationAuthorized": "authorized",
"locationAccuracy": "unsupported",
"locationAuthorized": "denied"
}
2023-04-26 10:15
wwwzzz (作者)
回复 龙朕: android:function requestAndroidPermission(permissionID: string) {
return new Promise((resolve) => {
plus.android.requestPermissions(
[permissionID], //
function (resultObj) {
let result = 0;
for (let i = 0; i < resultObj.granted.length; i++) {
const grantedPermission = resultObj.granted[i];
console.log("已获取的权限:" + grantedPermission);
result = 1;
}
for (let i = 0; i < resultObj.deniedPresent.length; i++) {
const deniedPresentPermission = resultObj.deniedPresent[i];
console.log(
"拒绝本次申请的权限:" + deniedPresentPermission
);
result = 0;
}
for (let i = 0; i < resultObj.deniedAlways.length; i++) {
const deniedAlwaysPermission = resultObj.deniedAlways[i];
console.log(
"永久拒绝申请的权限:" + deniedAlwaysPermission
);
result = -1;
}
resolve(result);
// 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
// if (result != 1) {
// gotoAppPermissionSetting()
// }
},
function (error) {
console.log(
"申请权限错误:" + error.code + " = " + error.message
);
resolve({
code: error.code,
message: error.message
});
}
);
});
} requestAndroidPermission("android.permission.CAMERA")先用这个判断 如果是打开权限再调用chooseImage
2023-04-26 10:39
龙朕
回复 wwwzzz: 我试了,第一次调用plus.android.requestPermissions选择禁止,再次调用也会再弹窗,也就是需要自己保存第一次禁止的状态是吧。而且chooseImage是可以选择拍摄或者从相册选择,如果自己处理的话还需要同时获取相册的权限,而不是在选择了拍摄还是从相册获取图片之后再获取相应的权限,你提供的这个方法就是在chooseImage不改的情况下可以用来满足一下审核要求,还是感谢哈。
2023-04-26 11:26
龙朕
反馈问题复现视频
龙朕
我发现uni.getLocation也有同样的问题,第一次调用弹窗禁止后,第二次调用又会弹窗获取定位权限,但第三次就不弹窗直接返回失败,希望技术能统一处理成第二次就不弹窗直接返回失败
wwwzzz (作者)
我没用到这个功能,不好意思
2023-04-26 20:12
1***@qq.com
请问解决了吗?