• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 二次向用户申请授权
2
3当应用通过[requestPermissionsFromUser()](../../reference/apis-ability-kit/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9)拉起弹框[请求用户授权](request-user-authorization.md)时,用户拒绝授权。应用将无法再次通过requestPermissionsFromUser()拉起弹框,需要用户在系统应用“设置”的界面中,手动授予权限。
4
5在“设置”应用中的路径:
6<!--RP1-->
7隐私 > 权限管理 > *权限类型(如位置信息)* > *具体应用*
8<!--RP1End-->
9
10应用也可以通过调用[requestPermissionOnSetting()](../../reference/apis-ability-kit/js-apis-abilityAccessCtrl.md#requestpermissiononsetting12),直接拉起权限设置弹框,引导用户授予权限。
11
12效果展示:
13
14<!--RP2-->
15![zh-cn_image_location](figures/zh-cn_image_location_second.png)
16<!--RP2End-->
17
18以下示例代码以再次拉起弹窗申请ohos.permission.APPROXIMATELY_LOCATION权限为例。
19
20```ts
21import { abilityAccessCtrl, Context, common } from '@kit.AbilityKit';
22import { BusinessError } from '@kit.BasicServicesKit';
23
24let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
25let context: Context = getContext(this) as common.UIAbilityContext;
26atManager.requestPermissionOnSetting(context, ['ohos.permission.APPROXIMATELY_LOCATION']).then((data: Array<abilityAccessCtrl.GrantStatus>) => {
27  console.info('data:' + JSON.stringify(data));
28}).catch((err: BusinessError) => {
29  console.error('data:' + JSON.stringify(err));
30});
31```