这是一份详细集成友盟推送SDK的心酸历程,也集成了华为、小米、OPPO、vivo厂商通道,处理了app进程关闭、app在后台、app前台通知点击的处理
1 根据友盟自动集成文档,集成友盟SDK 友盟地址 点击这里
2 集成后查看友盟demo,进行预初始化那些,打印友盟token等
3 使用友盟的推送工具测试集成是否OK
以上这三步最简单,就不多说了。
重点来了:
1 友盟的自定义点击通知时的打开动作 UmengNotificationClickHandler
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
@Override
public void dealWithCustomAction(Context context, UMessage msg) {
super.dealWithCustomAction(context, msg);
Log.i(TAG, "dealWithCustomAction: " + msg.getRaw().toString());
}
@Override
public void openActivity(Context context, UMessage msg) {
super.openActivity(context, msg);
Log.i(TAG, "click openActivity: " + msg.getRaw().toString());
}
@Override
public void launchApp(Context context, UMessage msg) {
super.launchApp(context, msg);
Log.i(TAG, "click launchApp: " + msg.getRaw().toString());
}
@Override
public void dismissNotification(Context context, UMessage msg) {
super.dismissNotification(context, msg);
Log.i(TAG, "click dismissNotification: " + msg.getRaw().toString());
}
};
pushAgent.setNotificationClickHandler(notificationClickHandler);
这个自定义只有在app位于前台的时候有作用,很多机型在app home回桌面后就没有反应了,所以用这个不好。如果你要用这个,那么在通知类型为自定义的时候(大多时候通知都为自定义,然后根据参数进行跳转),那么dealWithCustomAction()这个方法中,你的自定义处理需要写在super方法之前,不然没反应。
下面我将正确的处理方法:
1 集成厂商通道,集成的方法根据友盟的文档就可以了,比各大厂商自己的文档简单多了,集成后不要看友盟文档里面说的日志,自己调方法打印regId就可以了,有了regId 然后用各大厂商的推送测试工具,测试app关闭的情况下,能否收到通知。这个各大厂商里面都有的,小米、OPPO等有申请一下通道ID,不然小米会给你整一个不重要通知里面,看不懂通知了。这里再讲一个大坑,vivo的厂商推送,一天一个设备只有5个机会,

最低0.47元/天 解锁文章
3814

被折叠的 条评论
为什么被折叠?



