本文介绍在应用使用透传消息自行创建通知时,上报通知点击和删除事件的方法。
适用于移动推送 Android SDK 4.x,本文接口和示例以已发布的 4.0.0 版本为基线。使用 3.x 的应用请参见对应的 3.x API 文档。
适用场景
应用在 onMessage(Context, CPushMessage) 中接收透传消息,并自行创建通知或弹窗时,需要在用户实际点击或删除对应内容时调用以下接口上报统计事件。由 SDK 创建和处理的通知使用 SDK 自动统计。
两个接口均接收 onMessage 回调中的原始 CPushMessage。请保留 messageId、traceInfo 等统计字段,并将原始对象传递到点击或删除处理逻辑中。
在执行上报的应用进程中完成 PushServiceFactory.init。以下示例中的 originalMessage 应为 onMessage 收到并保留的原始 CPushMessage;在自建通知对应的点击或删除处理逻辑中调用相应示例方法。
点击事件(clickMessage)
在用户点击自建通知或对应弹窗时调用。同一条消息的同一种事件只上报一次。接口返回 void,无结果回调。
接口定义
void clickMessage(CPushMessage message);
所属类
CloudPushService
参数说明
|
参数 |
类型 |
是否必填 |
说明 |
|
message |
CPushMessage |
是 |
onMessage 收到的原始消息对象,不能为 null,messageId 不能为空。请保留其中的 messageId 和 traceInfo。 |
返回值与回调
返回值为 void,无结果回调。接口调用用于提交点击事件,不返回服务端接收或统计入库结果。
代码示例
public void reportCustomNotificationClick(CPushMessage originalMessage) {
if (originalMessage == null || originalMessage.getMessageId() == null
|| originalMessage.getMessageId().isEmpty()) {
return;
}
PushServiceFactory.getCloudPushService().clickMessage(originalMessage);
}fun reportCustomNotificationClick(originalMessage: CPushMessage?) {
if (originalMessage?.messageId.isNullOrEmpty()) return
PushServiceFactory.getCloudPushService().clickMessage(originalMessage)
}删除事件(dismissMessage)
在用户删除自建通知时,从通知的删除处理逻辑中调用本接口。每条消息的删除事件只上报一次。
接口定义
void dismissMessage(CPushMessage message);
所属类
CloudPushService
参数说明
|
参数 |
类型 |
是否必填 |
说明 |
|
message |
CPushMessage |
是 |
onMessage 收到的原始消息对象,不能为 null,messageId 不能为空。请保留其中的 messageId 和 traceInfo。 |
返回值与回调
返回值为 void,无结果回调。接口调用用于提交删除事件,不返回服务端接收或统计入库结果。
代码示例
public void reportCustomNotificationDismiss(CPushMessage originalMessage) {
if (originalMessage == null || originalMessage.getMessageId() == null
|| originalMessage.getMessageId().isEmpty()) {
return;
}
PushServiceFactory.getCloudPushService().dismissMessage(originalMessage);
}fun reportCustomNotificationDismiss(originalMessage: CPushMessage?) {
if (originalMessage?.messageId.isNullOrEmpty()) return
PushServiceFactory.getCloudPushService().dismissMessage(originalMessage)
}消息对象和验证
CPushMessage 实现 Parcelable,可按 Android 组件间数据传递规则保留原始消息。应用被系统回收后仍需处理通知点击时,请恢复原始消息及统计所需标识,并对日志中的消息数据进行脱敏。
|
方法 |
说明 |
|
getMessageId() |
消息标识,上报时必须保留。 |
|
getTraceInfo() |
SDK 提供的原始统计追踪信息,请随原始消息保留和传递。 |
|
getAppId() |
消息关联的应用标识。 |
|
getTitle() |
获取消息标题,用于构造自建通知的展示内容。 |
|
getContent() |
获取消息内容,用于构造自建通知的展示内容。 |
分别测试透传消息接收、自建通知显示、点击和删除流程,再查看服务端对应统计结果,确认统计上报生效。
相关文档
接入流程请参见Android SDK接入(4.x)。
使用 3.x 的应用请参见自建通知统计上报接口(3.x)。