app推送消息发错后该如何处理

昨天我司有个管理员帐号被盗,导致被不法分子恶意发了多条推送,针对此次事故,给大家带来了深刻的教训,那么app端对这种情况应该做怎样的处理呢?

1、针对已经送达到用户手机的推送

Android自带的NotificationManager是可以对通知栏进行接管的,以下代码可以清掉通知栏内有关该app的推送消息。

String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager;
mNotificationManager = (NotificationManager) context.getSystemService(ns);
mNotificationManager.cancelAll();

那么问题来了,这段代码又该在什么时候触发呢?

我司接的推送系统是友盟推送,该推送系统提供【自定义消息】的推送,那么只需要使用自定义消息对app再次进行推送即可告知app删除掉之前留在通知栏内的推送消息了。

Tips通知是指发送后会在系统通知栏收到展现,同时响铃或振动提醒用户。自定义消息是指发送后不会在系统通知栏展现,消息传到应用后需要开发者写展现代码才能看到。 自定义消息不对该消息进行展示和提醒,消息内容全部都传递给应用处理。

2、针对未送达到用户手机的推送

该类用户手机有可能处于关机、网络不稳定或者消息仍处于未发出的队列中等情况,此时需要将推送后台的消息全部撤回。

以上两点仅是对已发出的错误推送进行相关补救办法,根本上还是应该对推送系统进行有效的管理,另外很多第三方推送系统并没有清除已送达到通知栏的推送消息的功能,希望后续接入。