• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 使能通知开关
2
3
4应用需要开启通知开关才能发送通知。开发者可以在通知发布前调用[requestEnableNotification()](../reference/apis/js-apis-notificationManager.md#notificationmanagerrequestenablenotification)方法,弹窗让用户选择是否开启使能开关,仅弹窗一次,后续调用该接口不再弹窗。
5
6  **图1** 使能通知开关示意图
7![zh-cn_image_0000001416585590](figures/zh-cn_image_0000001416585590.png)
8
9
10- 点击“允许”后,则表示允许应用发送通知。
11
12- 点击“取消”后,再次调用[requestEnableNotification()](../reference/apis/js-apis-notificationManager.md#notificationmanagerrequestenablenotification)方法,则不再弹窗。此时如需要手动使能通知开关,操作步骤如下所示。
13
14  | ①从设备左上方下拉,进入通知界面                              | ②点击右上角“设置”图标,进入通知界面,找到需要打开通知开关的应用 | ③打开“允许通知”开关                                          |
15  | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
16  | ![zh-cn_image_0000001417062434](figures/zh-cn_image_0000001417062434.png) | ![zh-cn_image_0000001466462297](figures/zh-cn_image_0000001466462297.png) | ![zh-cn_image_0000001466782025](figures/zh-cn_image_0000001466782025.png) |
17
18
19## 接口说明
20
21详细接口见[接口文档](../reference/apis/js-apis-notificationManager.md#notificationrequestenablenotification)。
22
23**表1** 通知开关接口功能介绍
24
25| **接口名** | **描述** |
26| -------- | -------- |
27| isNotificationEnabled(bundle:&nbsp;BundleOption,&nbsp;callback:&nbsp;AsyncCallback&lt;boolean&gt;):&nbsp;void | 查询通知开关。<br/>**说明:**<br/>仅支持系统应用调用。       |
28| setNotificationEnable(bundle:&nbsp;BundleOption,&nbsp;enable:&nbsp;boolean,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void | 设置通知开关。例如在“设置&nbsp;&gt;&nbsp;应用和服务&nbsp;&gt;&nbsp;应用管理”,进入对应应用信息的“通知管理”中设置通知开关状态。<br/>**说明:**<br/>仅支持系统应用调用。 |
29| requestEnableNotification(callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void | 请求发送通知的许可,第一次调用弹窗供用户选择允许或禁止。     |
30
31
32## 开发步骤
33
341. 导入NotificationManager模块。
35
36   ```ts
37   import notificationManager from '@ohos.notificationManager';
38   ```
39
402. 请求发送通知的许可。
41
42   ```ts
43   notificationManager.requestEnableNotification().then(() => {
44       console.info(`[ANS] requestEnableNotification success`);
45   }).catch((err) => {
46       console.error(`[ANS] requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
47   });
48   ```
49
50