import { UTSAndroid } from "io.dcloud.uts"; type Perssion={ isPass:boolean, failList?:Array, successList?:Array } //请求系统权限 isPass为true代表全部权限通过,successList为通过的权限 failList为失败的权限 function getSystemPermission(perssionList:string[],callback:(val:Perssion)=>void):void{ UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!,perssionList,function(allRight:boolean,grantedList:string[]){ if(allRight){ // 用户同意了全部权限 callback({isPass:true,successList:perssionList,failList:[]} as Perssion) }else{ // 用户仅同意了某些权限 let failList:string[]=(perssionList as string[]).filter((name:string,index:number):boolean=>!grantedList.includes(name)); callback({isPass:false,successList:grantedList,failList} as Perssion) } },function(doNotAskAgain:boolean,grantedList:string[]){ // 不再询问的权限 console.log('doNotAskAgain===',doNotAskAgain) if(doNotAskAgain){ callback({isPass:false,failList:grantedList,successList:[]} as Perssion) }else{ if(grantedList.length===perssionList.length){ callback({isPass:false,failList:grantedList,successList:[]} as Perssion) } } }) }; //初始化需要的权限 export function initPerssion(val:string[]):Promise{ return new Promise((resolve,reject)=>{ //判断是否有权限 let perssion=val; getSystemPermission(perssion,(res)=>{ resolve(res); }) }) }