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

  • 2025-06-12
  • 浏览 (9)

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

默认情况下,通知消息会进行跨设备协同。如果应用已通过分布式通信能力实现跨设备协同(例如短信通知消息由短信应用本身协同到手表、平板、2in1等设备),为了避免通知消息在不同设备上重复发送,需要针对分布式通知的协同设备进行管理。

从API version 18开始,支持系统应用通过以下方式对分布式通知的协同设备进行管理:

  • 当应用的某个通知消息仅在当前设备发布时,需要将NotificationRequest参数中的notDistributed字段配置为true。
  • 当应用的某个通知消息需要按设备管控名单发布时,需要将NotificationRequest参数中的notDistributed字段配置为false,forceDistributed字段为配置true。

接口说明

接口名 描述 说明
publish(request: NotificationRequest): Promise<void> 发布通知。 具体使用方法见入参对象NotificationRequestnotDistributedforceDistributed字段说明。

开发步骤

  1. 导入模块。

    import { notificationManager } from '@kit.NotificationKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
  2. 通知消息跨设备协同管理。

    • 配置应用通知消息仅在当前设备上发布。
    // publish回调
    let publishCallback = (err: BusinessError): void => {
      if (err) {
        console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
      } else {
        console.info(`Succeeded in publishing notification.`);
      }
    }
    // 通知Request对象
    let notificationRequest: notificationManager.NotificationRequest = {
      id: 1,
      content: {
        notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
        normal: {
          title: 'test_title',
          text: 'test_text',
          additionalText: 'test_additionalText'
          }
        },
        // 配置应用通知消息仅在当前设备上发布。
        notDistributed: true
    };
    notificationManager.publish(notificationRequest, publishCallback);
    
    • 配置应用通知消息根据管控名单跨设备协同发布。
    // publish回调
    let publishCallback = (err: BusinessError): void => {
      if (err) {
        console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
      } else {
        console.info(`Succeeded in publishing notification.`);
      }
    }
    // 通知Request对象
    let notificationRequest: notificationManager.NotificationRequest = {
      id: 1,
      content: {
        notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
        normal: {
          title: 'test_title',
          text: 'test_text',
          additionalText: 'test_additionalText'
          }
        },
        // 配置应用通知消息根据管控名单跨设备协同发布。
        notDistributed: false,
        forceDistributed: true
    };
    notificationManager.publish(notificationRequest, publishCallback);
    

你可能感兴趣的鸿蒙文章

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

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

harmony 鸿蒙管理通知角标

harmony 鸿蒙取消通知

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

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

harmony 鸿蒙请求通知授权

harmony 鸿蒙Notification Kit简介

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

harmony 鸿蒙管理通知渠道

0  赞