[OsChina] iOSApns远程推送

发表于:  阅读量:40220

摘要

iOSApns远程推送远程推送应用配置过程一.创建支持远程推送功能的AppID添加AppID设置BundleID,不能设置通配ID勾选远程通知选项,可以在配置AppID的时候勾选,也可以在原有AppID的基础上进行更改。勾...

iOS Apns远程推送

远程推送应用配置过程

一. 创建支持远程推送功能的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秒

关键词:
-->
渝ICP备16002246号 Copyright © 2017. Singee77.com