目录

@correctness/request-user-authorization-second-time-check

若应用需要用户二次授权,建议使用requestPermissionOnSetting()接口拉起权限设置弹框,引导用户进行授权。

规则配置

// code-linter.json5
{
  "rules": {
    "@correctness/request-user-authorization-second-time-check": "suggestion"
  }
}

选项

该规则无需配置选项。

正例

import { abilityAccessCtrl, common } from '@kit.AbilityKit';

export default class EntryAbility {
  onCreate() {
    const atManager = abilityAccessCtrl.createAtManager();
    const context = getContext(this) as common.UIAbilityContext;

    // 首次申请使用requestPermissionsFromUser
    atManager.requestPermissionsFromUser(context, ['ohos.permission.CAMERA']);

    // 第二次申请使用requestPermissionOnSetting拉起权限设置弹窗
    atManager.requestPermissionOnSetting(context, ['ohos.permission.CAMERA']);
  }
}

反例

import { abilityAccessCtrl, common } from '@kit.AbilityKit';

export default class EntryAbility {
  onCreate() {
    const atManager = abilityAccessCtrl.createAtManager();
    const context = getContext(this) as common.UIAbilityContext;
    // 只调requestPermissionsFromUser,未调requestPermissionOnSetting
    atManager.requestPermissionsFromUser(context, ['ohos.permission.MICROPHONE']);
    atManager.requestPermissionsFromUser(context, ['ohos.permission.READ_CALENDAR']); 
  }
}

规则集

plugin:@correctness/all

Code Linter代码检查规则的配置指导请参考Code Linter代码检查(ArkTS/TS)。