为项目开发做前期准备,试着app推送消息测试,一个demo。试过百度推送,没有成功。又试了极光推送,终于在多次实验后成功了。后来发现,成功与否关键是没有搞明白混合应用推送的原理。
推送的过程/原理
用户打开app时推送插件向服务器报备设备,服务端判断是否有需要推送的消息,有则推到设备,没有则记录设备。
当发出新的推送时,服务端会向已报备的设备推送消息。当然这个过程中已报备的设备可能有关闭app和关闭网络的,这样就收不到推送了。下次连接网络的时候才会被服务器再次推送。
之前之所以不成功,关键的就是“连网”这件事。我的demo是个纯单机demo,也就是说,app里没有需要请求服务端的数据。
单机=推送失败
软件
phonegap相关各种
极光推送
教程
https://github.com/jpush/jpush-phonegap-plugin
这是官方推出的phonegap插件地址,也包含使用的教程我就不单贴了
坑1 单机app推送不成功
正如前面提到的,因为首先app里没有包含必须联网的内容,可能是导致失败的原因。
也有网友说单机的app因为是Debug版本这也可能是没有推送成功的原因。有空可以试试。
至少在app里面加了需要联网的东西后推送成功了,并且是debug版本。
坑2 提示未加统计
推送插件还提供了统计功能,统计推送成功数量、打开消息数量等。我好像没发现极光推送为phonegap版本准备这方面的代码,在无头绪的时候又在神奇的网友那找到了解决方法——发布的版本不会提示==!
囧一个先,作为一个开发者没有猜到没加统计提示是debug信息,也是很窘的啦
就是说,release后就不会有推送插件的提示消息了
题外话
以上是Demo阶段的结果
在项目中正式开发后才是真正考验的时候,遇到坑后再更新吧