IOS 推送功能的实现

最近要求做一个推送的功能,这个功能很简单,但是也废了挺大劲,所以总结下:

1.推送证书的申请,最初参考这份博客http://www.cocoachina.com/industry/20130321/5862.html,讲的是挺详细,但是还要结合百度开发中心提供的文档一块解决了所有问题。

开发证书,一个账号只能申请一个,要是用别人的开发账号,需要别人导出证书发送给你,或者删除他的证书,自己重新生成一个。(推送服务需要开发证书与推送证书)

2.证书搞定后下载百度推送sdk,在百度开发者中心(http://developer.baidu.com/wiki/index.php?title=docs/cplat/push)下载后修改里面API_KEY,Bundle identifier(从开发者账号中获取,此处也耽误了时间)

3.接下来用百度提供的网页服务端测试推送效果,推送成功。

4.刚开始被要求以qq接收消息的那种形式展现,个人感觉还挺繁琐,花时间整出后,需求被取消了(fuck)!

5.推送的一个重要展现方式就是badgeNumber的展现,这一块花费了点时间,[[UIApplication shareApplication] setApplicationIconBadgeNumber:需要输入的数字。0代表取消,不显示]。 这一块刚开始不知道放到代码中哪一块,这个和程序的生命周期有关,需要考虑程序生命周期。

6.[[UIApplication shareApplication] setApplicationIconBadgeNumber:需要输入的数字。0代表取消,不显示]。这块遇到的最大的问题就是服务器发送过badge,程序的图标应该默认修改,但是程序没修改,郁闷了好久,最后原因是服务器发送的badge为字符串形式,本来应该数字的形式。mygod!

7.[[UIApplication shareApplication] setApplicationIconBadgeNumber:需要输入的数字。0代表取消,不显示]设置逻辑需要客户端和服务端商量好,客户端不可能完全控制!

8.推送的工作结束了,接下来是我项目自己的问题,是一个IOS7 navigationBar 和状态栏重叠的问题,这个困扰了一段时间,最终实现方式在willViewAppear 中

self.navigationController.view.frame = [[UIScreenmainScreen] applicationFrame];我看了网上的很多方式都不行,最后就用

self.navigationController.view.frame = [[UIScreenmainScreen] applicationFrame];解决了问题,如果牵扯到横竖屏还要在

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration中添加self.navigationController.view.frame = [[UIScreen mainScreenapplicationFrame];


我写自己遇到的问题,如有不清楚的请留言,本人会耐心回答,我也收到了很多别人帮助






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值