2. MessageReceiver/AliyunMessageIntentService
详细解答可以参考官方帮助文档
通过继承MessageReciever,可以拦截通知,接收消息,获取推送中的扩展字段。或者在通知打开或删除的时候,切入进行后续处理。如果调用了setPushIntentService,则需继承com.alibaba.sdk.android.push.AliyunMessageIntentService,并覆写相关方法,AliyunMessageIntentService所有消息回调同MessageReceiver一致。
使用方法:
MessageReceiver
继承com.alibaba.sdk.android.push.MessageReceiver;在Manifest中找到原来MessageReceiver的配置,将上边的class替换成你自己的receiver[不要配置多个]。
/> ... ...
AliyunMessageIntentService
/> android:name='com.alibaba.sdk.android.push.RECEIVE' />
消息接收回调
用于接收服务端推送的消息。消息不会弹窗,而是回调该方法。
参数
context 上下文环境message CPushMessage类型,可以获取消息Id、消息标题和内容。
void onMessage(Context context, CPushMessage message);
通知接收回调
客户端接收到通知后,回调该方法。可获取到并处理通知相关的参数。
参数
context 上下文环境title 通知标题summary 通知内容extraMap 通知额外参数,包括部分系统自带参数:
_ALIYUN_NOTIFICATION_ID_(V2.3.5及以上):创建通知对应id_ALIYUN_NOTIFICATION_PRIORITY_(V2.3.5及以上):创建通知对应id。默认不带,需要通过OpenApi设置
void onNotification(Context context, String title, String summary, MapString, String> extraMap)
通知打开回调
打开通知时会回调该方法,通知打开上报由SDK自动完成。
参数
context 上下文环境title 通知标题summary 通知内容extraMap 通知额外参数,包括部分系统自带参数:
_ALIYUN_NOTIFICATION_ID_(V2.3.5及以上):创建通知对应id_ALIYUN_NOTIFICATION_PRIORITY_(V2.3.5及以上):创建通知对应id。默认不带,需要通过OpenApi设置
void onNotificationOpened(Context context, String title, String summary, String extraMap);
无跳转逻辑通知打开回调
打开无跳转逻辑(open=4)通知时回调该方法(v2.3.2及以上版本支持),通知打开上报由SDK自动完成。
参数
context 上下文环境title 通知标题summary 通知内容extraMap 通知额外参数,包括部分系统自带参数:
_ALIYUN_NOTIFICATION_ID_(V2.3.5及以上):创建通知对应id_ALIYUN_NOTIFICATION_PRIORITY_(V2.3.5及以上):创建通知对应id。默认不带,需要通过OpenApi设置
void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap);
通知删除回调
删除通知时回调该方法,通知删除上报由SDK自动完成。
参数
context 上下文环境messageId 删除通知的Id
void onNotificationRemoved(Context context, String messageId);
通知在应用内到达回调
当用户创建自定义通知样式,并且设置推送应用内到达不创建通知弹窗时调用该回调,且此时不调用onNotification回调(v2.3.3及以上版本支持)
参数
context 上下文环境title 通知标题summary 通知内容extraMap 通知额外参数openType 原本通知打开方式,1:打开APP;2:打开activity;3:打开URL;4:无跳转逻辑openActivity 所要打开的activity的名称,仅当openType=2时有效,其余情况为nullopenUrl 所要打开的URL,仅当openType=3时有效,其余情况为null
void onNotificationReceivedInApp(Context context, String title, String summary, MapString, String> extraMap, int openType, String openActivity, String openUrl);
赞0
踩1