import {showAlert} from '@/utils/message.js' // 递归算法 export const initTree = (arr, parentId = '0', id) => { const tree = []; arr.filter(item => item.parentId === parentId).forEach(item => { const children = initTree(arr, item[id]); if (children.length > 0) { item.children = children; } tree.push(item); }); return tree; } // 安卓异步调用 export const requestAndroidPermissionAsync = (systemInfo,permissions) => { return new Promise((resolve, reject) => { // if (uni.getSystemInfoSync().platform !== 'android') { // resolve({ granted: true, nonSystem: true }) // return // } plus.android.requestPermissions(permissions,(result) => { showAlert("result=>"+JSON.stringify(result)) // const granted = Object.values(result.granted).every(Boolean); let granted = false; if(systemInfo.osVersion<13){ granted = result.granted.length==2 } else if(systemInfo.osVersion==13){ granted =result.granted.length==3 } else{ granted = result.granted.length==1 } resolve({ ...result, granted }) },(error) => { reject(error) }) }) } // 安卓同步调用 export const requestAndroidPermission = (systemInfo) => { let granted = false; const Manifest = plus.android.importClass("android.Manifest"); const MainActivity = plus.android.runtimeMainActivity(); if(systemInfo.osVersion <13){ // 安卓系统版本 let permissionStatus = MainActivity.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE); let perStatus = 0; if (permissionStatus === 0) { perStatus++; } permissionStatus = MainActivity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE); if (permissionStatus === 0) { perStatus++; } if(perStatus ==2){ granted=true }else{ granted=false //"当前文件保存权限被关闭,请到设置中开启才能继续后续操作" uni.showModal({ title: '提示', content: "请点击授权", cancelText:'去设置', confirmText:'已设置', success: function (res) { if (res.confirm) { uni.reLaunch({ url: '/pages/loading/loading', }); } else if (res.cancel) { jumpAuthPermission(); } } }) } }else if(systemInfo.osVersion ==13){ let permissionStatus = MainActivity.checkSelfPermission(Manifest.permission.READ_MEDIA_IMAGES); let perStatus = 0; if (permissionStatus === 0) { perStatus++; } permissionStatus = MainActivity.checkSelfPermission(Manifest.permission.READ_MEDIA_VIDEO); if (permissionStatus === 0) { perStatus++; } permissionStatus = MainActivity.checkSelfPermission(Manifest.permission.READ_MEDIA_AUDIO); if (permissionStatus === 0) { perStatus++; } if(perStatus ==3){ granted=true }else{ granted=false //"当前文件保存权限被关闭,请到设置中开启才能继续后续操作" uni.showModal({ title: '提示', content: "请点击授权", cancelText:'去设置', confirmText:'已设置', success: function (res) { if (res.confirm) { uni.reLaunch({ url: '/pages/loading/loading', }); } else if (res.cancel) { jumpAuthPermission(); } } }) } }else{ let permissionStatus = MainActivity.checkSelfPermission(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED); let perStatus = 0; if (permissionStatus === 0) { perStatus++; } if(perStatus ==1){ granted=true }else{ granted=false //"当前文件保存权限被关闭,请到设置中开启才能继续后续操作" uni.showModal({ title: '提示', content: "请点击授权", cancelText:'去设置', confirmText:'已设置', success: function (res) { if (res.confirm) { uni.reLaunch({ url: '/pages/loading/loading', }); } else if (res.cancel) { jumpAuthPermission(); } } }) } } return granted } // 跳转授权按钮 const jumpAuthPermission=()=>{ var main = plus.android.runtimeMainActivity(); var Intent = plus.android.importClass('android.content.Intent'); var Uri = plus.android.importClass('android.net.Uri'); var pkg = main.getPackageName(); var intent = new Intent('android.settings.APPLICATION_DETAILS_SETTINGS'); intent.setData(Uri.parse('package:' + pkg)); main.startActivity(intent); setTimeout(()=>{ uni.reLaunch({ url: '/pages/loading/loading', }); },500) }