1# 请求通知授权
2
3应用需要获取用户授权才能发送通知。在通知发布前调用[requestEnableNotification()](../reference/apis-notification-kit/js-apis-notificationManager.md#notificationmanagerrequestenablenotification10-1)方法,弹窗让用户选择是否允许发送通知,后续再次调用[requestEnableNotification()](../reference/apis-notification-kit/js-apis-notificationManager.md#notificationmanagerrequestenablenotification10-1)方法时,则不再弹窗。
4
5## 接口说明
6
7接口详情参见[API参考](../reference/apis-notification-kit/js-apis-notificationManager.md#notificationmanagerrequestenablenotification10-1)。
8
9**表1** 通知授权接口功能介绍
10
11| **接口名**  | **描述** |
12| -------- | -------- |
13| isNotificationEnabled():Promise\<boolean\>       | 查询通知是否授权。  |
14| requestEnableNotification(context: UIAbilityContext): Promise\<void\> | 请求发送通知的许可,第一次调用会弹窗让用户选择。     |
15
16
17## 开发步骤
18
191. 导入NotificationManager模块。
20
21    ```ts
22    import { notificationManager } from '@kit.NotificationKit';
23    import { BusinessError } from '@kit.BasicServicesKit';
24    import { hilog } from '@kit.PerformanceAnalysisKit';
25    import { common } from '@kit.AbilityKit';
26
27    const TAG: string = '[PublishOperation]';
28    const DOMAIN_NUMBER: number = 0xFF00;
29    ```
30
312. 请求通知授权。
32
33    可通过requestEnableNotification的错误码判断用户是否授权。若返回的错误码为1600004,即为拒绝授权。
34
35    ```ts
36    let context = getContext(this) as common.UIAbilityContext;
37    notificationManager.isNotificationEnabled().then((data: boolean) => {
38      hilog.info(DOMAIN_NUMBER, TAG, "isNotificationEnabled success, data: " + JSON.stringify(data));
39      if(!data){
40        notificationManager.requestEnableNotification(context).then(() => {
41          hilog.info(DOMAIN_NUMBER, TAG, `[ANS] requestEnableNotification success`);
42        }).catch((err : BusinessError) => {
43          if(1600004 == err.code){
44            hilog.error(DOMAIN_NUMBER, TAG, `[ANS] requestEnableNotification refused, code is ${err.code}, message is ${err.message}`);
45          } else {
46            hilog.error(DOMAIN_NUMBER, TAG, `[ANS] requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
47          }
48        });
49      }
50    }).catch((err : BusinessError) => {
51        hilog.error(DOMAIN_NUMBER, TAG, `isNotificationEnabled fail, code is ${err.code}, message is ${err.message}`);
52    });
53    ```
54
55