harmony 鸿蒙清除跨设备场景下的重复通知
清除跨设备场景下的重复通知
从API version 20开始,为了避免不同渠道发布的通知重复打扰用户(例如,手机协同到当前设备的通知与Push推送服务发布的通知重复),可以使用通知去重功能,清除跨设备场景下的重复通知。
实现原理
应用发送通知时携带唯一标识字段appMessageId,分布式通知接收到多渠道发布的通知后,会根据该字段进行判断,从而实现通知去重。
设备只会展示第一条通知,后续收到的重复通知会被静默去重,不展示、不提醒。
图1 全场景通知去重流程图
约束条件
- appMessageId字段的唯一性需由开发者保证,同一条通知在各个设备形态上需保证字段相同。
- appMessageId字段仅在发布通知的24小时内有效,超过24小时或者设备重启时该字段会失效。
接口说明
接口名 | 描述 | 说明 |
---|---|---|
publish(request: NotificationRequest): Promise<void> | 发布通知。 | 使用方法见对象NotificationRequest中appMessageId字段说明。 |
开发步骤
导入模块。
import { notificationManager } from '@kit.NotificationKit'; import { BusinessError } from '@kit.BasicServicesKit';
发布通知消息,通知消息中包含
appMessageId
字段。// 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' } }, appMessageId: 'test_appMessageId_1' }; notificationManager.publish(notificationRequest, publishCallback);
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Notification Kit(用户通知服务)
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦