关于推送,在成为开发之前,我一直觉得无关紧要,等自己成为开发,并开发了多个项目之后,发现推送,分享等功能对于应用的留存,应用的推广拉新有太多的作用。
本篇先谈一谈推送。以及我们收到推送了以后的相关展示。
1.推送平台的接入;
推送平台五花八门,这个看公司的业务,具体的接入流程也都有文档介绍。这边稍微说几种我知道的,介绍一下应用范围。
国内开发常用的有极光推送,小米推送等,这些客户端接入也很简单。但是这些会有较多的局限性,最常见的就是应用未打开时,收不到推送消息。所以后来也有部分直接接入厂商,我这边就接入了华为的厂商推送,就算应用没打开,只要安装着,就能收到推送。
但是现在越来越多的产品选择出海,当然我们也是。对于海外的推送,海外有无数的手机运营商,有些运营商可能比较坑之类的。当时,最开始做的时候,国内测试都正常,正式上线以后,推送直接没工作,当时接的是小米推送。后来查了以后发现,小米在海外推送没法正常工作。所以我们后来改接了谷歌推送。说一下谷歌推送的好处,应用只要安装着,不用打开应用就能收到谷歌推送。不过对于国内手机来说,这个好处直接不存在,国内手机没有谷歌商店,谷歌服务等原生的服务,反正收不到。还有一个就是,在国内测试必须翻墙才能收到推送,谷歌在做消息分发的时候,由于网络被墙了,所以收不到,对于测试来说,简直是噩梦。你有时候很久没收到推送,以为出bug了,然后发现,是测试的翻墙坏了。说明一下,很多翻墙软件,明明开着,却没工作,相信很多用过的都深有体会。有时候没收到推送的时候,你不知道是网络的原因还是代码bug。
到这里推送平台的选择相信你有一定的了解了,可以根据自己的需要来选择对应的推送平台。
2.客户端推送的接收;
客户端只要按照开发文档接入自己需要的推送平台,一般都能正常。
客户端常用的就是订阅推送 / 全站推送。具体是什么推送反正都是服务端定的。根据文档,客户端根据对应平台的方法,订阅一个全站推送的topic即可完成。
如果有问题,看一下Manifest有没有注册对应的service,看一下注册的topic是不是和服务端约定一致等。
当客户端收到了推送消息,根据对应的推送解析出对应的数据即可。
常用推送数据结构包括推送标题,推送的文案,推送的时间,推送应用的logo,部分应用可能会需要一些图片。下面的文章会详细讲解一下客户端对于收到推送以后,在通知栏上的展示效果。