iOS Apns远程推送

iOS Apns远程推送

远程推送应用配置过程xcode

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

添加App ID服务器

设置Bundle ID,不能设置通配ID网络

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

勾选远程通知选项ide

勾选远程通知选项ui

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

建立远程推送证书编码

建立推送证书spa

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

选择App IDcode

选择咱们电脑本地使用证书助理生成的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秒

相关文章
相关标签/搜索