1.流程:app向个推服务器注册,个推服务器返回ClientID;
app将clientID发送给app的服务器;
app服务器发送消息(包含app的ClientID)给个推服务器;
个推服务器判断app是否online,如果在线,个推服务器将消息发送给app;
如果不在线,个推服务器将消息发送给苹果,使用苹果APNS(激活app,使app在线状态),app在线后,个推服务器将消息推送给 app.
app不在线情况:1)app在后台:得到苹果apns推送通知后,屏幕不锁定,点击消息启动应用,不经过appdidfinishlaunch函数。
如果锁屏,解锁点击消息,启动应用,同样不经过appdidfinishlaunch。(或手动点击应用)
2)app未在运行:得到苹果apns推送通知后,屏幕不锁定,点击消息启动应用,经过appdidfinishlaunch函数。
如果锁屏,解锁点击消息,启动应用,同样经过appdidfinishlaunch。(或手动点击启动应用程序)
2.处理app不在线情况:使用苹果APNS
注册苹果appid,appid需要支持苹果push功能; 创建苹果app push 开发SSL证书;手动生成provisionfile;下载provisionfile,在xcode里code sign处使用该文件;在应用appdidfinishlaunch函数里注册远程推送请求,获得devicetoken,将device token提交给个推服务器(如果程序已经运行过,在app向个推服务器注册,请求clientID的时候,会自动将之前的device token发给个推服务器,完成appID与device token的绑定);app 可以接收到苹果推送消息(具体处理可以在回调方法里,或者在应用didlaunch里进行处理)
3.为了使用个推,需要申请个推appID,提交应用的bundle id, .p12格式的apns证书及密码;之后获取appid,appkey,appsecret等。
原文:http://www.cnblogs.com/cocoabanana/p/3745270.html