通知消息跨设备协同管理(仅对系统应用开放)
默认情况下,通知消息会进行跨设备协同。如果应用已通过分布式通信能力实现跨设备协同(例如短信通知消息由短信应用本身协同到手表、平板、2in1等设备),为了避免通知消息在不同设备上重复发送,需要针对分布式通知的协同设备进行管理。
从API version 18开始,支持系统应用通过以下方式对分布式通知的协同设备进行管理:
- 当应用的某个通知消息仅在当前设备发布时,需要将NotificationRequest参数中的notDistributed字段配置为true。
- 当应用的某个通知消息需要按设备管控名单发布时,需要将NotificationRequest参数中的notDistributed字段配置为false,forceDistributed字段配置为true。
接口说明
| 接口名 | 描述 | 说明 |
|---|---|---|
| publish(request: NotificationRequest, callback: AsyncCallback<void>): void | 发布通知。 | 具体使用方法见入参对象NotificationRequest中notDistributed与forceDistributed字段说明。 |
前提条件
- 用户已通过手机中运动健康App连接手表。
- 用户已在手机的“运动健康App > 设备 > 消息通知”中,开启“同步手机消息通知至手表”开关与“支持的应用”通知开关。
开发步骤
-
导入模块。
import { notificationManager } from '@kit.NotificationKit'; import { BusinessError } from '@kit.BasicServicesKit'; -
通知消息跨设备协同管理。
-
配置应用通知消息仅在当前设备上发布。
// 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才会生效,且当forceDistributed为false按照协同管控名单显示 notDistributed: false, forceDistributed: false }; notificationManager.publish(notificationRequest, publishCallback);
你可能感兴趣的鸿蒙文章
openharmony 鸿蒙 notification-enable
openharmony 鸿蒙 notification-overview
openharmony 鸿蒙 notification-with-wantagent
openharmony 鸿蒙 notification-customized-ringtone
openharmony 鸿蒙 notification-subscriber-extension-ability-development-steps
openharmony 鸿蒙 notification-cancel
openharmony 鸿蒙 notification-update