为什么需要远程通知?
案例:淘宝双11要搞活动了,有很多的商品名义上都降价了,想要通知安装淘宝app的用户上淘宝去买东西,但app处于后台时,淘宝服务器无法与用户建立一条长连接,无法向它的用户推消息,只能只能借助于苹果的APNS服务器
为什么苹果的服务器可以推消息?
所有的苹果设备,只要在联网状态下,都会与苹果的服务器建立一条长连接
长连接有何作用?
* 时间校准
* 系统升级提示
* 查找我的iPhone
* 远程通知
疑惑:苹果如何知道要把消息推给哪个用户手机上的哪一款app?
以淘宝服务器为例
在淘宝服务器把消息给苹果的APNs服务器时,必须告知苹果DeviceToken(包含用户信息)
什么是DeviceToken?
DeviceToken是由用户手机的UDID和应用程序的BundleID共同生成的
如何获得DeviceToken?
客户端到苹果的APNs注册即可获得
做远程通知必备条件
1.明确的appid
2.给appid配置两个证书如下所示 (也就是cer证书)
开发证书:用于调试远程推送(如果仅仅是练习用的,自然也没必要再配置发布证书了)
发布证书:用于app发布后给用户推送消息
根据appid重新配置描述文件 ok后下载双击安装
ps: 当然完成以上步骤的前提是你要有一个至少99💲的开发者账号呀 😄
开始配置证书
第一步.配置一个明确的APPID(APPID与应用的boundID相对应,主要用来限制app)
并且要把远程通知功能选中
第二步:创建请求文件也就是通常说的CSR文件(与电脑绑定,一台电脑的请求文件是唯一的)
在Mac钥匙串中可以请求一个请求文件
填写以下几项信息 点击继续 把请求文件保存在本地磁盘即可
创建远程通知证书
选择为哪一个APPID配置证书
到了这里你得到了一个csr文件(已经没用了) 一个cer证书(双击安装)
第三步 配置描述文件
下载后双机安装即可 此刻你的电脑已经拥有测试远程通知的功能
苹果自带推送功能较为复杂 有时间再更新 先介绍下极光推送也是我们公司正在使用的远程推送
下载sdk 不用介绍了
申请极光帐号,创建一个应用 会获取一个 appKey