远程推送应用配置过程xcode
添加App ID服务器
设置Bundle ID,不能设置通配ID网络
勾选远程通知选项,能够在配置App ID的时候勾选,也能够在原有App ID的基础上进行更改。并发
勾选远程通知选项ide
勾选远程通知选项ui
建立远程推送证书编码
建立推送证书spa
选择咱们刚才配置好,勾选推送选项的App ID.代理
选择App IDcode
选择咱们电脑本地使用证书助理生成的CSR文件
选择后缀名为.certSigningRequest的文件
下载证书
生成配置文件
选择此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的文件
导出证书
上传给服务器时,须要告诉服务器开发同事证书的密码。
设置密码
具体怎么新建应用程序和其余开发就很少说了,直接说和推送相关的。
打开info.plist文件的Bundle identifier选项,将配置推送证书的App ID填写进去
App ID填写
点击项目,进入Build Setting 界面,向下滑动,去到Code Signing 配置证书
配置证书
须要在Xcode 中修改应用的 Capabilities 开启Remote notifications
开启Remote notifications
因为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秒