@wangwangheng
        
        2015-08-29T09:36:15.000000Z
        字数 1679
        阅读 1958
    未分类
目前我们使用的方案按照之前的约定,使用的推送平台是个推(http://www.getui.com)
新浪微博、汽车之家、去哪儿、招商银行、PPTV等比较大的公司都在用个推
因为推送的id由推送平台服务器生成,为了提高用户体验,并不会在拿到推送id之后再进行登录操作;所以在登录的时候不一定能拿到推送id,因此,会在所有接口的Header信息中添加一个字段:
key:x-customer-push-tokenvalue:推送id
key:x-courier-push-tokenvalue:推送Id
服务端可以加一个拦截器或者其他方案,当push_token不为空的时候更新相应用户的推送id
客户端负责展示通知,并处理点击事件
每一个推送都至少有以下三个字段:
messageType 表示推送的类型,客户端根据这个字段决定用户点击状态栏通知的行为
1 表示点击之后打开订单详情
messageTitle 表示通知的标题
这条推送,如果用户没有打开订单详情,用户点击之后进入到订单详情; 
如果已经打开订单详情,则直接刷新数据
{"messageType":1,"orderId":1234, // 订单号"messageTitle":"您的订单被快递员[XXX]抢单","messageContent":"您发给[订单收件人+(手机号码)]的订单已经被快递员[XXX]抢单,预计[12:30]到达您所在的位置"}
这条推送,如果用户没有打开订单详情,用户点击之后进入到订单详情; 
如果已经打开订单详情,则直接刷新数据
{"messageType":1,"messageId":1234, // 订单号"messageTitle":"请支付","messageContent":"您发给[订单收件人+(手机号码)]的订单,应付金额[100.00元],请尽快完成支付"}
这条推送,如果用户没有打开订单详情,用户点击之后进入到订单详情; 
如果已经打开订单详情,则直接刷新数据
{"messageType":1,"orderId":1234, // 订单号"messageTitle":"订单配送中","messageContent":"您发给[订单收件人+(手机号码)]的订单,已经完成支付,正在配送中"}
这条推送,如果用户没有打开订单详情,用户点击之后进入到订单详情; 
如果已经打开订单详情,则直接刷新数据
{"messageType":1,"orderId":1234, // 订单号"messageTitle":"订单配送完成","messageContent":"您发给[订单收件人+(手机号码)]的订单,已经送达,感谢您使用一会儿到"}
每一个推送都至少有以下三个字段:
messageType 表示推送的类型,客户端根据这个字段决定用户点击状态栏通知的行为
1 表示打开应用(刷新可抢订单列表)
2 表示打开订单详情
messageTitle 表示通知的标题
这条推送,如果用户没有打开应用,用户点击之后打开应用; 
如果已经打开应用,则刷新可抢单列表
{"messageType":1,"messageTitle":"您附近有新的订单","messageContent":"您附近有新的订单,赶快抢单吧~"}
这条推送,如果用户没有打开订单详情,用户点击之后进入到订单详情; 
如果已经打开订单详情,则直接刷新数据
{"messageType":1,"orderId":1234, // 订单号"messageTitle":"用户已完成支付","messageContent":"用户已完成订单[订单收件人+(手机号码)]的支付(支付金额100元),请尽快确认接单并配送"}