个推使用总结

来源:互联网 发布:日本二战殖民地知乎 编辑:程序博客网 时间:2024/04/28 05:33

    在ios客户端集成个推并不难,按照官方文档和demo,还有几个很重要的时序图跑几遍就大概知道怎么写代码了。

    这里用根据自己的理解重述一下个推的代码流程:

    1、创建个推skd对象,skd会将clientid发送到个推服务器,并异步返回clientid。个推服务器利用clientid来唯一标识每一个设备,收到clientid之后,你可以将clientid和用户信息等上传到app服务器上。

    2、向苹果服务器注册apns,收到devicetoken后,调用个推skd方法将devicetoken和clientid绑定。

    3、此时app服务器可以利用clientid向设备推送信息:(1)如果app在前台时,信息会从app服务器传送到个推服务器,由个推服务器通过clientid找到对应的设备。(2)如果app切换到后台时,此时个推sdk被关闭,推送消息通过apns,由devicetoken来找到对应的设备。

     个推文档中建议将个推sdk的调用放到主线程中,以保证线程安全。

     接下来重点记录一下个推坑我的地方:

    1、个推发布环境下和开发环境下要上传不同的证书,用发布证书安装的app无法收到开发环境证书的推送消息。 

    2、替换开发证书和发布证书需要24小时后才能推送成功,原因:当新的证书生效后,就会有新的devicetoken,但是坑爹的个推居然要间隔24小时,才会将clientid和devicetoken重新绑定,所以这个时候clientid根本映射不到正确的devicetoken,所以后台推送无法成功。解决办法:可以同一个app注册两个个推,上传不同的证书、使用不同的appkey,这样就不需要24小时的等待了。

    3、透传消息:就是自定义消息,区分普通的通知。

    4、上传证书旁边的“测试一下”是利用devicetoken推送的,如果此处可以推送成功,仅说明证书没有问题

    5、从后台进来的时候,先调用appdelegate接受apns推送内容,再调用个推的接受回调方法,通过信息id去获取消息内容:



1 0
原创粉丝点击