近来在调试推送的时候出现了一些问题,简要记录一下
1,推送分为远程和本地推送
推送的样式均为消息通知栏的一条消息,点击可以调起相应的APP,如果需要也可根据此条推送(消息)进入相应的页面
2,一般我们所做的为远程推送居多,所以就此聊两句远程推吧
通过后台服务器把需要推送的消息发给三方平台,常用的三方有很多:极光,友盟,信鸽等等都可以,究其根本这些三方平台类似于一个中转站,服务器把消息推给三方平台,三方平台再把消息推给手机端.那么为什么要用这些三方平台而不直接推呢?就我个人理解而言,三方平台已经把推送的内容方法梳理的相当好了,对于后端(服务器)和前端(手机)使用起来都相对简洁方便的多,那何乐而不为?
3,远程推送又分为几种方式:
1,单播(unicast):向指定的设备发送消息。
2,列播(listcast):向指定的一批设备发送消息。
3,广播(broadcast):向安装该App的所有设备发送消息。
4,组播(groupcast)::向满足特定条件的设备集合发送消息,例如: “特定版本”、”特定地域”等。
5, 文件播(filecast):开发者将批量的device_token或者alias存放到文件,通过文件ID进行消息发送。
6, 自定义播(customizedcast):开发者通过自有的alias进行推送,可以针对单个或者一批alias进行推送,也可以将alias存放到文件进行发送。
4,测试模式(testmode)
1,测试模式-Android:Android的测试设备是正式设备的一个子集
2,测试模式-iOS: iOS的测试模式对应APNs的开发环境(sandbox), 正式模式对应APNs的生产环境(prod),测试设备和正式设备完全隔离。
3,在测试环境下,前后端都应统一为测试环境,苹果端也要使用开发证书签名才可;如果测试模式为false,那么苹果端也要使用相应的正式环境也即生产环境
5,追根溯源,如何找到是前端还是后端的问题
1,当然如何确定问题可以看后台的返回状态码,在三方平台文档中根据状态码即可找到问题所在
2,如果后端推了消息能够在三方平台的消息列表能够找到,而手机端却没有收到消息那么这肯定是手机端的问题了;相反,后端推了消息在三方平台消息列表中什么都没有,那么说明后端推的消息根本没推给三方平台,那么手机端即使没有问题,也不能收到推送消息了
6,发送限制
1,单播无限制发送条数
2,广播组播等三方平台一般会有限制条数,如果条数不够用,一般可购买增加