iOS远程推送
来源:互联网 发布:windows 纯净 下载 编辑:程序博客网 时间:2024/06/07 20:51
iOS远程推送
本文主要介绍了使用 游云 Push 时,何时会收到远程推送、如何使用远程推送、如何获取远程推送的内容。
何时会收到远程推送
1. 游云 SDK 运行状态
游云 SDK 根据 iOS App 运行的特性,主要有以下三种运行状态:
前台状态 如字面意思,App 前台可见时 SDK 处于前台状态。此时 App 使用游云的
socket
来收发消息。后台活动状态 当 App 进入后台三分钟之内,SDK 处于后台活跃状态。此时 App 使用游云的
socket
接收消息。此时 SDK 不会弹出本地通知,如果您需要可以自己弹出本地通知提示。后台暂停状态 当 App 进入后台两分钟之后或被杀进程或被冻结,SDK 将处于后台暂停状态。此时游云的
socket
会断开,融云 Server 会通过APNs
将消息以远程推送的形式下发到客户端。 此状态下如果有人给该用户发送消息,游云的服务器会根据deviceToken
和推送证书将消息发送到苹果推送服务器,苹果服务器会将该消息推送到客户端。
2. 消息远程推送的流程
当 SDK 处于后台暂停状态时,并且已经上传了 deviceToken
,这时候如果有人给该用户发送消息,融云的服务器会根据 deviceToken 和推送证书将消息发送到苹果推送服务器(APNs
)。 苹果推送服务器会根据 deviceToken
查找相应的设备,并根据推送证书中的 BundleID
和 App 打包时使用的 Provisioning Profile
查找 App,从而确定唯一的设备上的唯一 App,并进行远程推送。
3. 开发环境与生产环境
苹果推送服务器区分开发环境(Development
)和生产环境(Production
),两个环境的服务器不同,可以使用相同的 P12 证书。
有几点需要注意的。
deviceToken
是唯一标识客户端的凭证,所以必须上传应用服务器才能使用远程推送。- 模拟器收不到远程推送。
- 越狱的设备
APNs
服务不能保证,所以不一定能收到远程推送。 APNs
使用BundleID
区分 App,使用通配符BundleID
的 App 将无法使用远程推送。
如何使用远程推送
开启 Push Notification
您可以新建一个AppID
,或者在您原有的AppID
上增加Push Notification
的 Service。 需要注意的是,您 App 的BundleID
不能使用通配符,否则将无法使用远程推送服务。- 新建AppID,进入App IDs页面,选择右上角
+
按钮,添加。
开启Push Notification。点击Continue
。 - 设置已经存在的AppID开启Push Notification。按下图选中,点击
Done
- 新建AppID,进入App IDs页面,选择右上角
生成证书
- 打开Mac中
钥匙串访问
软件,从证书颁发机构请求证书… - 输入邮箱,名称,选择存储到磁盘,选择
继续
,会生成一个.certSigningRequest
文件,继续,存储到磁盘。
- 打开Mac中
登录 Apple Developer,选择
Certificates,Identifiers & Profiles
。- 选择
Certificates
,选择All
,选择下图中的新建。 - 选择
Production
栏下的Apple Push Notification service SSL (Sandbox & Production)
勾选后,点击下一步。 - 选择
continue
,选择App ID
,选择continue
。 - 进入导入证书页面,点击
Choose File...
,选择步骤1中保存的.certSigningRequest
文件。 点击
Continue
生成证书。点击Download
下载到本地,双击安装。此证书便可以测试开发环境和生产环境。双击打开证书,证书打开时会启动钥匙串访问工具。 在钥匙串访问工具中,你的证书会显示在 “证书” 中,注意选择左下角的 “证书” 和左上角 “登录”。 选中对应的证书,右键选择导出。保存 P12 文件时,可以为其设置密码,也可以不设置密码。
- 选择
验证刚刚的设置
进入证书页面,选择开启Push Notification
的App ID
,在Distribution
列下的Push Notification 显示绿色的Enabled
表示设置成功。如下图:开发者平台上传证书
代码调用推送
参考
- Configuring Push Notifications
- APNs Provider API
- iOS推送之远程推送
- iOS推送之远程推送
- iOS推送之远程推送
- ios推送之远程推送
- iOS推送之远程推送
- iOS推送之远程推送
- iOS 远程推送通知
- iOS远程推送通知
- IOS远程推送通知
- iOS远程消息推送
- ios远程推送笔记
- 【iOS】远程消息推送
- iOS远程推送注意事项
- ios远程推送
- ios远程消息推送。
- iOS开发 远程推送
- iOS的远程推送
- ios之远程推送
- CSS文件结构组织
- 把23转化为2进制
- myBatis的批量插入数据总结
- BST相关代码
- 错误积累
- iOS远程推送
- 关于等待事件enq: TX - allocate ITL entry的一次故障处理
- 看图识“字”(15)-站点图
- 二进制
- android 下拉筛选菜单 view的显示和隐藏动画
- 浮点数在内存中的表示
- 23的二进制数
- Android 开源项目第五篇——优秀个人和团体篇
- 从零开始的Android新项目1 - 架构搭建篇