这里面要考虑的是一个方向的问题。直接关系到怎么写代码。
1.公司有无自己的推送服务,有:端内走自己的,端外走第三方的;无:端内端外都用第三方。
2.是否只集成一个第三方,是:认真慎重选择一个,正确集成,准确结合业务。简单高效省时间。否,呵呵,这是一个坑。
小米用小米,华为用华为,魅族用魅族,那其他的呢?为了达到更多的app能够唤醒我们的应用,有两种方案:
1.单通道方案:选中几个推送,自己在自测阶段分别对这几个推送Demo进行测试:1)看看哪些app能够拉起这些Demo,尽量挑选一些大厂、用户量大的app,如淘宝,网易新闻,高德地图这些。每一个推送圈定4到5可以拉起来的app。2)分析这些app的包名。集成推送多的话,可能会有20、30个包名。3)把这些包名交给服务器,让他们在应用启动时下发(并由他们去维护),客户端根据下发的包名本地去分析,是否有这些包名的app。4)哪个推送调起的app最多,就初始化哪个推送。
2.多通道方案:选中几个推送,全部集成,全部初始化,全部上报服务端token。服务端发推送也是多个推送全部发送,客户端在接收时会接收到多个,那么客户端就需要判断消息的唯一性,先来先处理,后来不考虑。
当然可能还有其他策略。