前言
应用接入第三方推送这个需求老板早就提过了,但是因为一方面担心推送用不好效果会适得其反,另一方面因为之前每次版本迭代的需求都比较急,所以接入推送这个事就一直没有完成,最近新版本的Android和iOS都已经上线了,下一版的迭代需求也没有太多,所以自然就把接入第三方推送这个需求放到下一版迭代开发中了。
调研
市面上有很多第三方推送,比如做推送起家的极光,信鸽(腾讯推送),个推。还有一些大公司的推送像友盟,阿里推送,百度推送,腾讯推送(信鸽),还有一些手机厂商自家的推送像小米推送,华为推送,魅族推送等
因为我们的产品是用React Native开发的,所以在调研选取推送之前,除了一些常见的推送硬指标之外,我们还希望能找到有官方支持React Native应用接入的推送。主要是考虑到现在整个客户端就我一个开发人员,Android方面倒是没有问题,iOS如果没有官方文档的话,我怕接入过程会不太顺利,毕竟现在我的iOS水平还很低。。
根据实际情况,看了一下每家的推送,好像就发现一个极光推送有官方支持React Native接入的文档和Demo,本来打算选择极光的。但是,又考察了一些关于推送到达率的这些硬指标之后,又对比了一下我们的产品umeng后台统计的机型数据之后,最终决定接入小米推送。
难点
- 小米推送并没有官方提供的React Native接入文档或者Demo
- 推送消息在React Native层面消息收取和分发
尤其是第二个技术难点,我们知道推送接入成功之后,收到推送消息以及用户点击推送消息这些事件的接受都是在Android和iOS的原生层面进行的,如何将消息传递到React Native层面进行消息的处理和页面的跳转是一大难题。
正式开始
下面就讲讲从接入到实现点击消息在React Native层面上跳转的过程吧