if (plus.os.name == 'Android') {
console.log(permissionID);
let _permissionID = 'android.permission.' + permissionID;
plus.android.checkPermission(
_permissionID,
(granted) => {
if (granted.checkResult == -1) {
//还未授权当前查询的权限,打开权限申请目的自定义弹框
_this.showPopup = true;
_this.$nextTick(() => {
setTimeout(() => {
_this.ani = '' + _this.type;
}, 30);
});
}
},
(error) => {
console.log(error.message);
}
);
plus.android.requestPermissions([_permissionID], (e) => {
//关闭权限申请目的自定义弹框
_this.ani = '';
_this.$nextTick(() => {
setTimeout(() => {
_this.showPopup = false;
}, 0);
});
if (e.granted.length > 0) {
//当前查询权限已授权,此时可以通知页面执行接下来的操作
_this.$emit('changeAuth');
}
if (e.deniedAlways.length > 0) {
//当前查询权限已被永久禁用,此时需要引导用户跳转手机系统设置去开启
// #ifdef APP-NVUE
_this.openPopup('goOpenPermissionRef');
return;
uni.showModal({
title: '温馨提示',
content: '还没有该权限,立即去设置开启?',
cancelText: '取消',
confirmText: '去设置',
showCancel: true,
confirmColor: '#000',
cancelColor: '#666',
success: (res) => {
if (res.confirm) {
_this.goSetting();
}
}
});
// #endif
// #ifndef APP-NVUE
_this.openPopup('goOpenPermissionRef');
// #endif
}
});
}

- 发布:2025-03-07 18:04
- 更新:2025-03-12 15:45
- 阅读:70
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 4.45
手机系统: Android
手机系统版本号: Android 14
手机厂商: vivo
手机机型: iQOO Neo8 Pro
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
用vivo Neo8 Pro 调用照片与视频
用vivo Neo8 Pro 调用照片与视频
预期结果:
用vivo Neo8 Pro 调用照片与视频 成功调用或提示开启权限,开启权限后可以成功调用
用vivo Neo8 Pro 调用照片与视频 成功调用或提示开启权限,开启权限后可以成功调用
实际结果:
用vivo Neo8 Pro 调用照片与视频 完全开启不了
用vivo Neo8 Pro 调用照片与视频 完全开启不了

jstomato (作者)
用标准基座是可以的,自定义基座就不行
plus.android.requestPermissions(['android.permission.WRITE_EXTERNAL_STORAGE'], (e) => {
console.log(e);
if (e.granted.length > 0) {
uni.chooseImage({});
}
if (e.deniedAlways.length > 0) {
var Intent = plus.android.importClass('android.content.Intent');
var Settings = plus.android.importClass('android.provider.Settings');
var Uri = plus.android.importClass('android.net.Uri');
var mainActivity = plus.android.runtimeMainActivity();
var intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
var uri = Uri.fromParts('package', mainActivity.getPackageName(), null);
intent.setData(uri);
mainActivity.startActivity(intent);
}
});

jstomato (作者)
https://ask.dcloud.net.cn/question/197843
说是被废弃了
Android 33 以上设备
WRITE_EXTERNAL_STORAGE 权限已废弃。需要修改为
<!--照片-->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<!--视频-->
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<!--音频-->
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />"
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />",
"<uses-permission android:name=\"android.permission.READ_MEDIA_AUDIO\" />",
jstomato (作者)
https://ask.dcloud.net.cn/question/204869 应该是和这个问题一样,不过iQOO Neo8 Pro是一次询问都没有。其他手机有正常的两次询问,拒绝后设置打开也不生效
2025-03-12 14:48