第一次认真集成推送,碰到了一些问题,记录一下。

首先讲一下实现原理,我们用的是友盟。Android比iOS要麻烦很多。

友盟集成是需要后端配合的,具体就是后端调用友盟的接口,向友盟推送一条消息,然后友盟再向在他们平台注册过的app发送一条消息,我们要做的就是把接收到的消息展示出来。

需求:用户要能在各个时候都能收到我们APP的推送,并且能对应打开不同的界面

解决方法:集成友盟,但是Android只简单集成友盟是不行的,在APP被杀死以后,就接收不到通知了,所以需要额外集成厂商通道。另一个和iOS不一样的就是,iOS在打开当前APP的时候,可以收到横幅推送,但是Android需要自己做。

什么是厂商通道:

由于国内手机厂商过多地使用应用保活方案实现消息推送功能,因此导致手机耗电加快、卡顿。国内部分手机厂商发现了这一问题,自己推出了消息推送服务。这些手机厂商通过进程管理,杀死后台进程,并提供消息推送能力,让消息通过手机厂商官方推送通道下发到应用程序中。这类典型的手机厂商有小米、华为等。

1.集成步骤

大致分为两部分:

正常推送集成。

五大厂商通道集成。

1.1 正常推送集成

点击推送信息以后的处理,收到推送的时候的回调

UmengNotificationClickHandler notificationClickHandler =new UmengNotificationClickHandler() {

@Override

public void dealWithCustomAction(Context context, UMessage msg) {

//点击推送通知以后的处理

Log.i(TAG,"notificationClickHandler "+msg);

}

};

UmengMessageHandler messageHandler =new UmengMessageHandler() {

@Override

public void dealWithCustomMessage(final Context context, final UMessage msg) {

Log.i(TAG,"message "+msg);

}

@Override

public NotificationgetNotification(Context context, UMessage uMessage) {

//手机收到推送的时候的回调

Log.i(TAG,"message ");

//返回默认构造

return super.getNotification(context, uMessage);

}

};

mPushAgent.setNotificationClickHandler(notificationClickHandler);

mPushAgent.setMessageHandler(messageHandler);

设置最多能看到的推送条数

mPushAgent.setDisplayNotificationNumber(3);

如果需求中需要打开APP中某个界面,责需要观察 "after_open"字段,默认是  "go_app",需要服务端同学配合

{

"msg_id": "uu481201399440513912",

"display_type": "notification",

"alias": "",

"random_min": 0,

"body": {

"title": "测试自定义参数",

"ticker": "测试自定义参数",

"text": "无",

"after_open": "go_app",

"url": "",

"activity": "",

"custom": "",

"play_vibrate": "true",

"play_sound": "true",

"play_lights": "true"

},

"extra": {

"key1": "value1",

"key2": "value2"

}

}

成功以后可以看log

主要看after_open,默认是打开app

2.集成中碰到的问题

1.集成以后收不到推送

(1) mPushAgent.register()要放在application中调用,放在别的地方不起作用

(2) 检查so文件有没有放错地方

(3) 打开日志提示,仔细看提示:UMConfigure.setLogEnabled(true)

2.java.lang.ClassNotFoundException: com.ut.mini.UTAnalytics

尽量更新到最新版本的引用,友盟开发说这个只是提示,不用太在意....

3.杀死进程以后收不到推送

解决方法:集成各个厂商通道

iOS的小伙伴集成以后,就算杀死APP也可以收到推送,为啥Android不可以,伤感,看了文档才知道,我们要集成厂商通道,

4.集成以后收不到推送,显示送达却没有弹出通知

manifest里面的package最好与build.gradle中的applicationId不一 致,因为我们项目有两个applicationId,所以会出现这种情况

需调用setResourcePackageName设置资源文件包名

java服务器端集成友盟,Android友盟推送集成相关推荐

  1. Android 多厂商推送集成

    前言 按劳分配,多劳多做.好不容易集成完了个推的推送 SDK,美滋滋的准备划一会儿水,鸟哥吩咐为了保证应用杀死后也可以接收到推送,并且降低服务端的维护多渠道的开发成本,还得集成下个推的多厂商渠道.等等 ...

  2. Android推送集成方案总结

    Android推送集成方案总结 刚做完推送集成方案,记录下坑. 这里记录的特性和使用时针对写blog时采用的sdk的,具体使用流程和限制还请参考官方给出的sdk. 1.推送规则 小米手机用小米推送: ...

  3. React-native之友盟(UMeng)推送集成(超详细)(android版)----------小白的天堂

    React-native之友盟(UMeng)推送集成(超详细)(android版) 集成环境: React-native: 0.61.5 Umeng push sdk:6.0.5 测试环境: Andr ...

  4. android 小米推送 no account,XiaomiPushDemo【小米推送集成,基于V3.6.12版本】

    前言 这个Demo只是记录小米推送的集成,不能运行.使用步骤 一.项目组织结构图 注意事项: 1.  导入类文件后需要change包名以及重新import R文件路径 2.  Values目录下的文件 ...

  5. Android开发之推送服务(二) 集成小米推送

    小米推送主要是用来适配小米手机的.所以,在做的时候,一般会判断当前手机是否是小米手机,如果是小米手机,则去使用小米推送,注册小米推送,如果不是,则默认使用Umeng推送. 在集成小米推送之前,需要先注 ...

  6. Android开发之推送服务(三) 集成Oppo和vivo推送

    Oppo推送服务,也是在Oppo手机中使用的比较多.而且现在Oppo和Vivo两款手机最早提出美颜功能,所以这两款手机在市场上的占有率还是比较高的. Oppo推送目前已经开发注册,Vivo目前只对部分 ...

  7. Android 手机厂商推送服务调研

    由于谷歌服务在国内不能用,Android 的推送真是一大痛点,但也推动了国内一批做第三方服务的厂商.第三方推送做的比较好的有极光.个推.百度.友盟,经过比较之后,最后选择了极光推送.其实这些第三方推送 ...

  8. android热门消息推送横向测评![转]

    关于这个话题,已经不是什么新鲜事了.对于大多数中小型公司一般都是选择第三方的服务来实现.但是现在已经有很多提供推送服务的公司和产品,如何选择一个适合自己项目的服务呢?它们之间都有什么差别?在此为大家做 ...

  9. android热门消息推送横向测评!

    关于这个话题,已经不是什么新鲜事了.对于大多数中小型公司一般都是选择第三方的服务来实现.但是现在已经有很多提供推送服务的公司和产品,如何选择一个适合自己项目的服务呢?它们之间都有什么差别?在此为大家做 ...

最新文章

  1. 程序终于实现跨机器运行——记VC++2005程序开发的一个常见问题
  2. C++ primer - - 第一部分
  3. wordpress hmailserver等相关 3
  4. Ubuntu16.04 Docker 安装
  5. Linux及安全课程——相关链接总结
  6. DCMTK:简单存储服务类提供者
  7. 用友t3服务器文件丢失,用友T3软件在T3用友通标准版恢复账套时在备份的文件中找不到要恢复的文件,如何解决?-用友T3...
  8. Android开发:5-1、Adopter
  9. linux删除文件里夹命令,Linux删除文件(夹)、创建文件(夹)命令是什么
  10. python 员工考勤_用python写的考勤自动打卡程序
  11. 简单的3个SQL视图搞定所有SqlServer数据库字典 (转载)
  12. Excel自定义格式详解
  13. ISP - bayer 是什么?
  14. Win7快速调整屏幕亮度最快的方法
  15. 接入层交换机、汇聚层交换机和核心层交换机的区别
  16. java ice c_ZeroC ICE之旅------java
  17. 微型计算机接口与技术期末,北邮《微机原理与接口技术》期末复习题(含答案).doc...
  18. 2岁内婴幼儿过敏患病率达40.9%
  19. 致读者的一封信——付费专栏《数据科学技术与应用_中国大学MOOC_持续更新》用户调查【2021/1/22】
  20. 京东助手抢购-购买口罩教程

热门文章

  1. 华为服务器 26块硬盘,产品推广—华为服务器推荐
  2. Access数据库教程_如何进行C#连接Access数据库的细节操作?
  3. 历年世界10大经济体及GDP列表
  4. 信号完整性分析系列2——什么是信号完整性及何时遇到
  5. VUE实现PDF在线阅读
  6. 读书寄语:感谢揭露你过失的人
  7. 一个包含学生信息的顺序表
  8. python用百度云接口实现身份证识别
  9. TextView+Button
  10. 快速原型工具 mockups和墨刀还有axure