UserAuth.ets 1.5 KB
import { abilityAccessCtrl, common, Permissions } from '@kit.AbilityKit';
import { promptAction } from '@kit.ArkUI'
import { rpc } from '@kit.IPCKit';


// 获取用户授权
export async function reqPermissionsFromUser(permissions: Array<Permissions>, context: common.UIAbilityContext) {
  let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
  try {
    let data = await atManager.requestPermissionsFromUser(context, permissions)
    let grantStatus: Array<number> = data.authResults;
    if(grantStatus.every((numberItem: number) => numberItem === 0)){
      promptAction.showToast({message: '授权成功'})
    } else {
      console.log('用户已取消授权')
    }
  } catch (err) {
    promptAction.showToast({message: `Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`})
  }
}

// 检查用户是否授权
export function  checkAccessToken(permissions: Array<Permissions>): boolean {
  // Determine the authorization status.
  let callerTokenId: number = rpc.IPCSkeleton.getCallingTokenId();
  let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
  try {
    return permissions.every((permissionItem: Permissions) => atManager.verifyAccessTokenSync(callerTokenId, permissionItem) !== -1)
  } catch (err) {
    console.log(`checkAccessToken catch err->${JSON.stringify(err)}`)
    return false
  }
}

export interface commonRouterParams {
  reportId: number;
  projectId: number;
  videoPath: string;
}