公司app集成了极光推送,前前后后在这上面费了不少时间了,总结下自己的理解和遇到的问题。  只用过极光推送,所以下面都以极光推送为例。(后面新增小米和华为)

1.、都有什么品牌的推送服务? 集成什么品牌比较好?

主流第三方推送有 极光,友盟,个推,百度云,基本服务都是免费的。另外还有小米推送,华为推送,这两个在自己的android平台上权限更高,在app进程被杀死的情况下也能推送。

个人推荐: 个推>友盟=极光=百度云 ,原因如下。   另外大些的应用还会同时集成小米推送和华为推送,来提高在小米和华为手机上的推送到达率。

① 市场占有率是个很重要的指标,在android应用下,app进程被杀死的话,可以通过共有使用了同家服务商的其他app推送通道,来提高到达率。

② 其他方面,比如推送稳定性,耗电量,耗流量,功能全面度等来说,主流的推送服务商差距感觉也不太多,就不怎么考虑了。另外,应该只有极光支持winphone推送= =。

可参考:http://www.jianshu.com/p/db3c478d9191

2、 ios和android的推送机制?

了解也不深,就不多说了,个人大致总结下就是,ios使用的是苹果官方的推送服务器APNs通道转发,android也有官方的推送服务器GCM,但好像在国内因为墙的关系不太能用,所以第三方都采用直接与应用建立长连接的方式推送,导致权限不高,到达率也低,并且耗电量还高。

关于推送机制可参考:https://www.zhihu.com/question/20667886

关于为什么不用GCM可参考:http://www.52im.net/thread-117-1-1.html

关于android保活的方式可参考:http://www.52im.net/thread-438-1-1.html

3.、定时推送怎么实现?

极光推送是有定时推送的api的,但我使用的是java的定时任务框架quartz实现的,这样更灵活一些。

4、推送和自定义消息的区别?

推送是指应用外,往通知栏推送内容。

自定义消息是往app内推送数据,这个很灵活,可以借此实现一些无法用http请求实现的功能。比如常见的的app内表示未读消息的即时刷新的红点或角标。

5、ios和android 推送到达率的问题? 为什么android的推送到达率普遍低很多?

在极光推送中,ios的推送成功数代表极光服务器成功发送到苹果APNS服务器的数据,基本与表目标数相差无几,目标数与成功数之差为失败数,失败的原因一般是Apple 判断 token 失效了,App 已经卸载了等。苹果端的实际到达用户数统计需要另外设置,我没有做。ios由于在app进程被杀死的情况也可以收到通知,所以实际到达数排除手机没电,没网等情况后,应该也还是较多的。   怎么配置可以看极光的说明文档:https://docs.jiguang.cn/jpush/client/iOS/ios_guide_new/#_9。

在android端,成功数即代表了实际到达用户的数量,等于在线到达数+离线到达数。当app处于打开状态时,计入在线到达数,未打开状态下app推送会由极光的离线推送机制,等用户激活app时推送。当用户在离线时间内(极光免费用户为5天)未激活app的话,也就永远收不到了。 所以我们一般需要采用一些手段,使推送能尽量到自己的未激活app,提高到达率。

6. android怎么提高到达率?

①让自己的app成为白名单。

方式有两种,一种是用户手动设置,一种是像QQ,微信等一样,被手机厂商默认设置为白名单。

②使自己的app处于打开或是后台打开的状态。这个就属于运营范畴了。

③集成小米推送,华为推送等手机厂商的推送服务,这些推送的权限更高,有系统的推送进程。小米推送可以使小米手机上进程被杀死状态也能推送。华为同理。

④被其他app唤醒进程:

当使用了极光推送服务的其他app被唤醒时,自己app可以使用其他APP的推送通道收到推送,其它推送服务商同理。所以推送服务商的市场占有率越高,自己app收到推送的概率也就越高。极光需要另外配置该功能:https://community.jiguang.cn/t/jpush/2815。

关于android保活的方式可参考:http://www.52im.net/thread-438-1-1.html

*后续集成小米推送和华为推送*

1.小米推的送

小米的文档写的挺明白了,各项功能也还算完整,api逻辑跟极光差不多。最重要的是在小米MIUI系统上是系统级推送,可以在应用被杀死的情况下收到推送。另外小米还支持ios推送,也可以透传消息,所以完全替代极光是应该是行得通的。

2.华为推送

其实也不难,在服务器端就两个接口,①是从华为服务器获取 通行令牌,②是根据通行令牌调用华为接口推送就好了。但华为吐槽点不少。

1. 集成实际上其实挺简单,但文档复杂,写了一堆细节和原理上的东西,格式也不够友好,不利于快速上手。只能推送android。

2. 功能比较简单,只能使用token(RegistrationID)推送,一次最多还只能是1000条。 统计页面上数据也比较少。

3. 新版推送跟旧版推送不兼容,旧版推送貌似已经放弃维护,所以我集成的是新版,而且新版推送只在华为5.1以上才收的到(被这个问题耽误了半天时间)

4. 相比较极光,小米,推送管理平台页面也挺简陋,各方面细节上都不够友好。

推荐快速集成方案:直接下载demo(华为没有提供对接口封装后的jar包),对应文档把一些参数改改就好了。然后拿到移动端给的token就可以推送了。

3.极光+小米+华为推送整合:

应该主要就是解决一个问题,三个平台都推送的情况下,移动端怎么只显示一条资讯?

我这采用的方法是:

①通知栏推送服务端三个推送平台一起推,不用做什么特别处理。应用内推送(透传消息)就用极光推。

②移动端上(听同事说的),小米手机只初始化极光和小米,之后再把极光通知栏推送这一块关掉。(因为需要用到极光的应用内消息推送,所以极光还是需要初始化)

华为手机只初始化极光和华为,之后再把极光通知栏推送这块关掉。

其他手机就只初始化极光推送就好了。

————————————————
版权声明:本文为CSDN博主「潮又落」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35779879/article/details/78738829

集成推送(极光+小米+华为)总结(java服务端)相关推荐

  1. 32.android的推送协议,小米华为手机推送问题,简单了解一下

    XMPP协议简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议) 是目前主流的四种IM(IM:instant messagin ...

  2. 第三方推送(小米华为友盟)接入实践

    0,前言 这几天接了一下友盟,小米,华为三方的推送. 总的流程下来,小米的api是最友好的,华为的文档和demo有点脱节.这两个推送在特定的手机上都挺稳定的的. 友盟的就有点麻烦,过程中遇到几个问题 ...

  3. 友盟推送集合小米华为通道

    前面怎么实现不赘述,照着下面链接的官方文档来就可以了 http://dev.umeng.com/sdk_integate/android_sdk/android_push_doc#5 写这篇博客的主要 ...

  4. Flutter集成推送功能-小米推送集成

    Dart4Flutter -01 – 变量, 类型和 函数 Dart4Flutter – 02 –控制流 和异常 Dart4Flutter – 03 – 类和泛型 Dart4Flutter – 04 ...

  5. 极光推送 使用实例 (一)服务端

    原文:http://blog.csdn.net/u014733374/article/details/43560983 最近一直在做后台开发,但心里还是总惦记着Android,感觉还是Android有 ...

  6. object C php,关于消息推送的补充,主要介绍服务端的实现,包含object c 版本 c 版本 java 版本 php 版本 (转)...

    1. push原理 iOS push 工作机制可以用下图简要概括 Provider:应用自己的服务器: APNS:Apple Push Notification Service的简称,苹果的PUSH服 ...

  7. 友盟小米收不到推送消息_一个轻量级、可插拔的Android消息推送框架。一键集成推送(极光推送、友盟推送、华为、小米推送等)...

    XPush 一个轻量级.可插拔的Android消息推送框架.一键集成推送(极光推送.友盟推送.华为.小米推送等),提供有效的保活机制,支持推送的拓展,充分解耦推送和业务逻辑,解放你的双手! 在提iss ...

  8. 快速集成推送通知功能---百度云推送

    发现百度云推送简直太好集成了,一下午时间都用不上就搞定了 先看效果吧 发送通知 接收通知 接下来就是步骤了 1.先去百度云推送开发者平台注册账号 http://push.baidu.com/ 然后创建 ...

  9. Flex通信-Java服务端通信实例

    Flex与Java通信的方式有很多种,比较常用的有以下方式: WebService:一种跨语言的在线服务,只要用特定语言写好并部署到服务器,其它语言就可以调用 HttpService:通过http请求 ...

最新文章

  1. 字符串匹配算法 -- BM(Boyer-Moore) 和 KMP(Knuth-Morris-Pratt)详细设计及实现
  2. 了解PowerShell命令——PowerShell三分钟(二)
  3. Android开源库介绍:AndLinker-Android 上的 IPC 库
  4. 在Windows下搭建Android开发环境及遇到的问题
  5. 谷歌发安全警告:社交网络威胁用户隐私
  6. js文件 import java类_实现JS脚本导入JAVA类包
  7. 飞鸽传书开发者都在为生计发愁?
  8. Fedora Linux中配置JDK5或JDK6环境变量
  9. pandoc epub_使用Pandoc将您的书变成网站和ePub
  10. php容器原理,容器与依赖注入的原理
  11. mediacodec 相关问题
  12. 区块链性能测试工具使用教程
  13. webservice的接口测试工具
  14. U盘启动盘制作与ISO分享
  15. 通过两个列表构建字典_我在两个月内以99美元的价格构建了一个电子商务网站!
  16. C++/java设计模式汇总
  17. Unity3D脚本中文系列教程(八)
  18. 【APP本地化】提高APP下载量的 5 个技巧
  19. android中setClickable,setEnabled,setFocusable的含义及区别
  20. 中国建筑设计公司排名

热门文章

  1. python发送邮件一
  2. 全球数字高程数据:ASTER GDEM
  3. 程序员 必知 的 自学网站,建议收藏!
  4. HTTP的常用方法、GET和POST的区别
  5. C语言中变量和函数的声明与定义
  6. 毛玻璃matlab,QA清单(毛玻璃赛题)
  7. iOS 取绝对值用法
  8. **长庆油田.长庆局和四川石油管理局合并的通知(ZT)
  9. 英语口语学习文章分享
  10. 计算机二级web题型及分值,2016年全国计算机二级《Web程序设计》考试大纲