关于集成个推和极光双推送的坑

一.在文章开始之前有必要给大家简单的介绍一下个推和极光的推送机制。

       想必大家对极光很熟悉,也相信大部分人都用过。极光分为通知和消息。通知就是当程序在后台运行时。导航条出现的那一条推送。而消息则不通过推送条直接推送到用户app中的功能。为什么我要介绍这个是因为个推不是这么做的。

       个推区别极光,它分为消息和透传(极光中的消息)在个推官网上有这么一句话不知道大家注意没注意。其实意思就是个推把通知和透传放到一起了。当我们程序处于后台时候。服务器发送透传信息的时候会以通知的形式送达手机端。当我们点击通知打开程序后传达的消息又会以透传的方式送达app中。下面就分享一下我这两天集成双推送的心酸史吧。


坑1.冲突问题。

当我们打开个推sdk包的时候 sdk中会有两个framework 切记一定要选择图二中的 因为如果两个一起导入会出现冲突问题。

在多说一点冲突后回报红 会告诉你冲突的文件目录。我们默认的时候运行程序时要把所有的三方库全部添加。这样有一个不好就是 当我们饮用一些三方库的时候会莫名的报冲突  解决办法也很简单就是双击打开后 吧-all_load改成-force_load。也就是当需要加载的时候再去调用这些库文件。

坑2.集成双推送你会发现无论是个推还是极光你都会受到两条推送。

这个问题我在cc上也问了。但是说做过双推送的都遇到这种情况。最近也查了下资料也没找到具体的原因。毕竟技术不够智商来凑吗。既然我改变不了你外部 我在代码中修改。当同事推送两条一样的通知过来的时候 我默认取第二条这样就ok。下面是最关键的。坑3.

坑3.无论是极光还是个推当后台发送通知时候程序莫名的会崩溃掉。

下面是崩溃的错误信息和解决办法(你仔细看崩溃信息,网上查你根本查不到解决办法当时卡在这里将近2天的时间。)  究其原因最后发现问题出在这个代理上。completionHandler(UIBackgroundFetchResultNewData)无论是极光还是个推都会用到这个方法。当两个在一个代理中使用两个这个方法的时候就会出现崩溃。因此初始化极光和个推后 +一个就可以了。


总结一下

其实最后还是说一句,个推处理消息和透传的关系做的真的不如极光好。比如说打车软件。就拿极光来说,当通知来了的时候我点开通知进入app会立刻弹出订单,能顺利的完成整个流程。但是个推则不能。当点开app 司机看到主界面后过一会才会拿到透传消息。这就意味着 这个用个推的司机要比极光的司机晚收到推单。后来发现个推提供了这个方法不过得需要添加参数。总之还是不如极光灵活。希望能帮助到左双推送的小伙伴。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不同版本极光推送SDK集成各有差异,集成时一定要注意版本号,楼主已将博文更新成最新的SDK JPush v3.0....
    i顺颂时宜阅读 7,920评论 37 170
  • 版本记录 前言   现在很多APP都有推送功能,其中极光推送就是很多APP的首选。我们最近的几个APP也是用的极光...
    刀客传奇阅读 8,539评论 0 8
  • 网易云音乐的个人音乐日历出来了,听得最多的是金玟岐的《小幸运》 我不知道那天凌晨三点的时候听李志的《梵高先生》...
    屠涂图阅读 208评论 0 0
  • 人愤怒的那一个瞬间,智商是零,过一分钟后恢复正常。 人的优雅关键在于控制自己情绪,用嘴伤害人,是最愚蠢的一种行为。...
    幽暗的森林阅读 748评论 0 0
  • 今天去姑家吃饭,弟弟马上去海南当兵了,虽然不算什么大事,还是找个理由一起聚一聚,我还是不喜欢饭局,不太熟悉的人坐在...
    不开灯的房间s阅读 86评论 0 0