我们以前的系统消息推送使用的是Openfiler,但由于他的不稳定性慢慢的不能满足我们的需求,我们对第三方的推送进行了研究:友盟和个信;友盟是刚上线的iOS推送不太完善;最后锁定个信推送;
使用个信推送我发现了一些题:
准备工作:在个推官网创建apple应用、把个推SDK植入程序和对应的app推送证书;
iOS SDK下载地址:http://www.igetui.com/download/iOS/SDK_OPEN_IOS.zip
下面我们看下个推的一个流程图;
说明: l UID: 第三方应用标识用户身份的ID。 l ClientID(CID): 个推SDK标识用户身份的ID。 l payload: 第三方应用通过个推发送给客户端的透传信息,由第三方应用负责解析具体动作,个推只负责传输。 |
我就说下我们遇到的问题:
1、首先是利用SDK产生CID(这个是每个用户的唯一标示),如果在开发的时候,你用了两个个推账户在同一台机器运行了同一个程序,他的lib包会保存第一次获得的cid也就会产生第二个账号不能接受到信息的问题;解决把办法,下载新的SDK,换掉lib包;
2、开通接口在程序里接入获取CID的方法在传送给我们的后台服务器,这样就可以拿到所有用户的CID;
3、iOS有一个和Android不一样的地方,就是apns功能,通知有两种状态:在线和离线(挂起);在线就不用说了,直接服务器推就可以了;离线:指的是程序进入挂起状态,(iOS其实是伪后台)要推送消息就要先唤醒程序,apns证书就是在这里用的;https://developer.apple.com/account/ios/profile/profileList.action?type=production
4、使用透传消息,他的UI展示和提醒都要自己做处理,个推只提供了log;
5、程序进入挂起状态前要调用stopSdk方法,就是关闭在线接入功能;
在加一点个推的性能介绍:
1.个推目前支持推送通知、透传消息,如果想要使用增量更新和智能推送,需要联系技术支持人员。
2.消耗内存适中,移动设备空载耗电每日15-50mAh,流量0.8-1.2M/月。
3.个推平台移动设备SDK集成难度一般,使用推送管理后台即可发送消息。
4.个推提供了IOS平台的SDK和DEMO,对于服务器端,则提供了C#,JAVA,PHP,PYTHON四种语言的接口文档和开发实例。
http://www.devstore.cn/evaluation/testInfo/4-107.html
先运行个推的DEMO,为了学习;