码迷,mamicode.com
首页 > 移动开发 > 详细

iOS远程推送

时间:2016-04-19 20:05:57      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

远程推送应用配置过程

一. 创建支持远程推送功能的App ID

技术分享
添加App ID
技术分享
设置Bundle ID,不能设置通配ID

勾选远程通知选项,可以在配置App ID的时候勾选,也可以在原有App ID的基础上进行更改。

技术分享
勾选远程通知选项
技术分享
勾选远程通知选项

二. 申请开发者证书,并选中刚刚创建的App ID

技术分享
创建远程推送证书
技术分享
创建推送证书

选择我们刚才配置好,勾选推送选项的App ID.

技术分享
选择App ID

选择我们电脑本地使用证书助理生成的CSR文件

技术分享
选择后缀名为.certSigningRequest的文件

三. 下载CER文件,并导入钥匙串管理

技术分享
下载证书

四. 我们需要重新生成一下配置文件

技术分享
生成配置文件

选择此Provisioning Profile的环境后点击Continue

技术分享
点击Continue

选择要创建Provisioning Profile的App ID后点击Continue

技术分享
点击Continue

选择所属的开发者证书,(这里创建了多个开发者证书,建议只创建一个,方便管理)为了方便。这里选择Select All,再点击Continue进入下一步。

技术分享
点击Continue进入下一步

为该Provisioning Profile选择将要安装的设备(一般选择Select All),点击Continue

技术分享
选择Select All

给该Provisioning Profile填写Profile Name,点击generate完成创建

技术分享
完成创建

创建完成,点击download下载到本地。双击下载下来的Provisioning Profile,添加到xcode。

五. 将推送证书导出后缀为.p12的文件,上传服务器。在团队开发中如果遇到多人开发,也需要给同事导出.p12证书给他人使用。


注意:导出证书的时候,尽量不要展开私钥。

技术分享
导出后缀为.p12的文件
技术分享
导出证书

上传给服务器时,需要告诉服务器开发同事证书的密码。

技术分享
设置密码

六. 远程推送应用程序开发过程

具体怎么新建应用程序和其他开发就不多说了,直接说和推送相关的。

打开info.plist文件的Bundle identifier选项,将配置推送证书的App ID填写进去

技术分享
App ID填写

点击项目,进入Build Setting 界面,向下滑动,去到Code Signing 配置证书

技术分享
配置证书

需要在Xcode 中修改应用的 Capabilities 开启Remote notifications

技术分享
开启Remote notifications

七. 获取DeviceToken,并发送给服务器

由于iOS系统权限限制,需要注册远程通知,我们直接上代码

技术分享
注册远程通知

注册通知之后,苹果会将DeviceToken通过代理方法的形式返回相应的代理方法。注意:一定要联网!

这个代理方法会将手机的UDID + 应用程序的Bundle ID发送给苹果,苹果进行某种编码之后再通过代理方法返回。

deviceToken = (手机的UDID + 应用程序的Bundle ID) 苹果编码

返回的deviceToken是NSData类型的,大概格式如下:<7040f7d5 5a974598 c5cf31b5 3e340b39 68affd25 122f0ce1 3f315226 396c2e5b>

注册通知后,在代理方法中接收到苹果返回的deviceToken

技术分享
获取到苹果发送的deviceToken

实现接收到远程通知的代理方法,触发方法和本地通知流程一致

iOS8以前使用这个方法:

技术分享
获取推送消息

iOS8之后使用这个方法:

技术分享
获取推送消息

执行completionHandler有两个目的

1> 系统会估量App消耗的电量,并根据传递的UIBackgroundFetchResult 参数记录新数据是否可用

2> 调用完成的处理代码时,应用的界面缩略图会自动更新

注意:接收到远程通知到执行完网络请求之间的时间不能超过30秒



文/刘小壮(简书作者)
原文链接:http://www.jianshu.com/p/5639a3d2a2be
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

iOS远程推送

标签:

原文地址:http://blog.csdn.net/wuwuweiweilonglong/article/details/51192312

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!