checkPermission('STORAGE', REFUSE_TEXT.avatar_strong, per_pop_up.value).then(res => {
if (res) {
uni.chooseImage({
count: 1,
success: (res) => {
const {tempFilePaths} = res
const avatarUrl = tempFilePaths[0]
changeAvatar(avatarUrl)
}
})
}
})
// 检查是否授权 请求授权
export function checkPermission(permissionID, permission_text_list, per_pop_up) {
return new Promise((resolve) => {
// #ifndef APP-PLUS
resolve(true)
// #endif
// #ifdef APP-PLUS
const ANDROID_PERMISSIONS = {
'STORAGE_11': ['android.permission.READ_EXTERNAL_STORAGE', 'android.permission.WRITE_EXTERNAL_STORAGE'],
'STORAGE_13': ['android.permission.READ_MEDIA_IMAGES'],
'STORAGE_14': ['android.permission.READ_MEDIA_VISUAL_USER_SELECTED']
}
if (permissionID === 'STORAGE') {
const android_version = getAndroidVersion()
if (android_version >= 34) {
permissionID = 'STORAGE_14'
} else if (android_version === 33) {
permissionID = 'STORAGE_13'
} else {
permissionID = 'STORAGE_11'
}
}
const permissions = ANDROID_PERMISSIONS[permissionID]
// 检查是否有权限
let hadPermission = 0
try {
const main = plus.android.runtimeMainActivity()
const ContextCompat = plus.android.importClass('androidx.core.content.ContextCompat')
// 调用 ContextCompat.checkSelfPermission 返回 0(有权限)或 -1(没权限)
for (let i = 0; i < permissions.length; i++) {
hadPermission = ContextCompat.checkSelfPermission(main, permissions[i])
if (hadPermission !== 0) { // 如果有一个权限没有授权,就跳出循环
break
}
}
} catch (e) {
resolve(false)
}
if (hadPermission !== 0) {
// 未授权 弹窗提示使用权限说明 请求权限授权
per_pop_up.openPerPopUp(permission_text_list[2], permission_text_list[3])
// 未授权 请求权限
let result = false
plus.android.requestPermissions(permissions, function (e) {
if (e.deniedAlways.length > 0) { //权限被永久拒绝
console.log('Always Denied!!! ' + e.deniedAlways.toString())
}
if (e.deniedPresent.length > 0) { //权限被临时拒绝
console.log('Present Denied!!! ' + e.deniedPresent.toString())
}
if (e.granted.length > 0) { //权限被允许
console.log('Present success!!! ' + e.granted.toString())
result = true
}
if (result) {
// 授权成功 关闭弹窗
per_pop_up.closePerPopUp()
} else {
// 授权失败 弹窗让用户手动去设置授权
showAndroidPermissionModel(permission_text_list[1], per_pop_up)
}
resolve(result)
}, function (e) {
console.log('Request Permissions error:' + JSON.stringify(e))
resolve(false)
})
} else {
resolve(true)
}
// #endif
})
}