版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.05.14 |
前言
前一篇已经对极光推送产品架构和服务进行了介绍,这一篇则只对ios客户端的集成和使用等状况进行了说明。
1. 极光推送集成(一)
ios SDK概述
这里先给出了两个链接:
一、JPush ios原理
下面这个图给出了Jpush的原理。
从上图可以看出,JPush iOS Push 包括 2 个部分,APNs 推送(代理),与 JPush 应用内消息。
- 红色部分是 APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。
- 蓝色部分是 JPush 应用内推送部分,即 App 启动时,内嵌的 JPush SDK 会开启长连接到 JPush Server,从而 JPush Server 可以推送消息到 App 里。
APNs 通知
APNs 通知:是指通过向 Apple APNs 服务器发送通知,到达 iOS 设备,由 iOS 系统提供展现的推送。用户可以通过 IOS 系统的 “设置”-> “通知” 进行设置,开启或者关闭某一个 App 的推送能力。JPush iOS SDK 不负责 APNs 通知的展现,只是向 JPush 服务器端上传 Device Token 信息,JPush 服务器端代理开发者向 Apple APNs 推送通知。
获取 APNs 推送内容
** 应用内消息**
应用内消息:JPush iOS SDK 提供的应用内消息功能,在 App 在前台时能够收到推送下来的消息。App 可使用此功能来做消息下发动作。此消息不经过 APNs 服务器,完全由 JPush 提供功能支持。
获取应用内消息推送内容
APNs通知与应用内消息对比
如果只需要发送通知,则可以忽略应用内消息的处理。对于两种消息的代码处理可以参考API 部分的描述。
JPush API v3 支持同时一次调用同时推送 APNs 通知与JPush 应用内消息。这在某些应用场景里是有意义的。
看一下下面二者的区别。
项目 | APNS | 应用内消息 |
---|---|---|
推送原则 | 由JPush服务器发送至APNS服务器,再下发到手机。 | 由JPush直接下发,每次推送都会尝试发送,如果用户在线则立即收到。否则保存为离线。 |
离线消息 | 离线消息由APNS服务器缓存按照Apple的逻辑处理。 | 用户不在线JPush server 会保存离线消息,时长默认保留一天。离线消息保留5条。 |
推送与证书环境 | 应用证书和推送指定的iOS环境匹配才可以收到。 | 自定义消息与APNS证书环境无关。 |
接收方式 | 应用退出,后台以及打开状态都能收到APNS | 需要应用打开,与JPush 建立连接才能收到。 |
展示效果 | 如果应用后台或退出,会有系统的APNS提醒。如果应用处于打开状态,则不展示。 | 非APNS,默认不展示。可通过获取接口自行编码处理。 |
处理函数 | Apple提供的接口:didReceiveRemoteNotification | JPush提供的接口:networkDidReceiveMessage |
二、iOS SDK 集成
请参考以下文档与教程,来集成 IOS SDK。
三、iOS SDK 说明
iOS 版本支持
- 支持的iOS版本为6.0及以上版本。
- 支持iOS版本为10.0以上的版本时需知。
- Notification Service Extension证书配置时需要注意 BundleID不能与Main Target一致,证书需要单独额外配置。
- 请将Notification Service Extension中的Deployment Target设置为10.0。
- 在XCode7或者更低的版本中删除Notification Service Extension所对应的Target。
- 在XCode7或者更低的版本中请将引入的'UserNotifications.framework'删除。
组成
- 头文件 JPUSHService.h
- 静态库文件 jpush-ios-x.x.x.a,jcore-ios-x.x.x.a
注意事项
四、JPush APNs 通知的意义
iOS 平台上推送通知,只有 APNs 这个官方的通道,是可以随时送达的。一般开发者都是自己部署应用服务器向 APNs Server 推送。
JPush iOS 推送相比直接向 APNs 推送有什么好处呢?
- 减少开发及维护成本
- 应用开发者不需要去开发维护自己的推送服务器与 APNs 对接。
- 集成了 JPush iOS SDK 后不必自己维护更新 device token。
- 通过 JPush 的 Web Portal 直接推送,也可以调用JPush的 HTTP 协议 API 来完成,开发工作量大大减少。
- 减少运营成本
- 极光推送支持一次推送,同时向 Android, iOS, WinPhone 三个平台。支持统一的 API 与推送界面。
- 极光推送提供标签、别名绑定机制,以及提供了非常细分的用户分群方式,运营起来非常简单、直观。
- 提供应用内推送:
- 除了使得 APNs 推送更简单,也另外提供应用内消息推送。这在类似于聊天的场景里很有必要
五、JPush APNs 实现
具体实现可以参考另外一篇博客文章。
后记
这一篇说的是极光推送的概览,下一篇说一下ios客户端的集成,谢谢大家的支持。