harmony 鸿蒙请求通知授权

  • 2022-12-13
  • 浏览 (1760)

请求通知授权

应用需要获取用户授权才能发送通知。在通知发布前调用requestEnableNotification()方法,弹窗让用户选择是否允许发送通知,后续再次调用requestEnableNotification()方法时,则不再弹窗。

接口说明

接口详情参见API参考

表1 通知授权接口功能介绍

接口名 描述
isNotificationEnabled():Promise<boolean> 查询通知是否授权。
requestEnableNotification(context: UIAbilityContext): Promise<void> 请求发送通知的许可,第一次调用会弹窗让用户选择。

开发步骤

  1. 导入NotificationManager模块。

    import { notificationManager } from '@kit.NotificationKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    import { hilog } from '@kit.PerformanceAnalysisKit';
    import { common } from '@kit.AbilityKit';
    
    
    const TAG: string = '[PublishOperation]';
    const DOMAIN_NUMBER: number = 0xFF00;
    
  2. 请求通知授权。

    可通过requestEnableNotification的错误码判断用户是否授权。若返回的错误码为1600004,即为拒绝授权。

    let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
    notificationManager.isNotificationEnabled().then((data: boolean) => {
      hilog.info(DOMAIN_NUMBER, TAG, "isNotificationEnabled success, data: " + JSON.stringify(data));
      if(!data){
        notificationManager.requestEnableNotification(context).then(() => {
          hilog.info(DOMAIN_NUMBER, TAG, `[ANS] requestEnableNotification success`);
        }).catch((err : BusinessError) => {
          if(1600004 == err.code){
            hilog.error(DOMAIN_NUMBER, TAG, `[ANS] requestEnableNotification refused, code is ${err.code}, message is ${err.message}`);
          } else {
            hilog.error(DOMAIN_NUMBER, TAG, `[ANS] requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
          }
        });
      }
    }).catch((err : BusinessError) => {
        hilog.error(DOMAIN_NUMBER, TAG, `isNotificationEnabled fail, code is ${err.code}, message is ${err.message}`);
    });
    

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Notification Kit(用户通知服务)

harmony 鸿蒙发布实况窗类型通知(仅对系统应用开放)

harmony 鸿蒙管理通知角标

harmony 鸿蒙取消通知

harmony 鸿蒙清除跨设备场景下的重复通知

harmony 鸿蒙通知消息跨设备协同管理(仅对系统应用开放)

harmony 鸿蒙跨设备协同通知概述

harmony 鸿蒙Notification Kit简介

harmony 鸿蒙为跨设备协同通知添加快捷回复

harmony 鸿蒙管理通知渠道

0  赞