iOS远程推送Push开发教程
远程推送通知
什么是远程推送通知
顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为apns(apple push notification services)
为什么需要远程推送通知
传统获取数据的局限性 只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容
远程推送通知可以解决以上问题 不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知
远程推送通知使用须知
- 所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接 什么是长连接 只要联网了,就一直建立连接
- 长连接的作用 时间校准 系统升级 查找我的iphone .. ...
- 长连接的好处 数据传输速度快 数据保持最新状态
推送原理
provider就是我们公司的服务器,经过苹果的apns服务器找到我们的设备,给我们设备上的客户端应用推送消息。那apns服务器是如何找到我们的设备和设备上的应用呢,答案就是devicetoken,devicetoken需要配置推送证书才可以获得,推送证书需要知道我们的app id(应用的bundleid,应用唯一标识)和udid(设备唯一标识),还有自己服务器的udid,我们先来打一个推送证书,登录开发者中心,点击证书模块
点击ios apps的证书
进入这样的界面
点击app ids,然后点右上角的加号
箭头所指为应用id描述,我们假设写了一个很牛逼的应用,excitedapp,接下来我们填入app id,注意这里的app id是固定的,不能有星号
接下来我们添加app所需要的服务,然后点击continue
一直点击下一步,完成,在app ids 列表里面找到我们的excitedapp,我们看到
发现push服务是黄色警告,这时点击edit,找到推送模块,我们需要配置推送证书了,点击红色箭头所指的位置
我们需要一个csr文件,csr是一个签名请求文件,意思就是让我们的mac具有调试推送的权限,点击继续
点击了继续我们看到
然后我们打开mac上的钥匙串,从证书颁发机构请求证书
前两个随便写,最后选择存到磁盘
完成之后,接下来我们就可以添加csr文件了
添加完,选择生成
证书配好了,下载下来
配好了!
顺带着我们把发布的证书也给配了,步骤都一样
打开我们刚刚下载的证书,添加到钥匙串中
终于能开始整我们的项目了,快哭了都
不要忘记修改bundle id 这里还要搞一个真机调试的证书才可以
真机调试的东西这里不累述,搞了这么多东西,我们终于可以拿到devicetoken了
在appdelegate.m中注册推送
- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions { uiusernotificationtype types = uiusernotificationtypebadge | uiusernotificationtypesound | uiusernotificationtypealert ; uiusernotificationsettings * setting = [uiusernotificationsettings settingsfortypes:types categories:nil]; [[uiapplication sharedapplication] registerusernotificationsettings:setting]; return yes; } -(void)application:(uiapplication *)application didregisterforremotenotificationswithdevicetoken:(nsdata *)devicetoken { nslog(@"%@",devicetoken); }
devicetoken处理流程
接下来我们用pushmebaby来测试一下我们的推送:https://github.com/stefanhafeneger/pushmebaby/
将我们的推送证书添加到项目目录
接下来手机上就可以收到推送了。
本文已被整理到了《ios推送教程》,欢迎大家学习阅读。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。