IOS 推送功能
目录:
1. IOS系统为什么会有推送?
2. 推送的种类;
3. 推送的实现;
4. 第三方推送服务。
1. IOS系统为什么会有推送?
1.1 苹果系统不允许APP长时间停留在后台模式;
1.2 提供服务器主动与用户相互的能力;
2. 推送的种类
2.1 本地推送: 不依赖与网络,例如:闹铃、备忘录提示;
2.2 远程推送:基于APNS的远程推送, 例如:新闻、购物APP的推送等;
3. 推送的实现
3.1 APNS:苹果推送通知服务 Apple Push Notification services;
APNs 的作⽤:
- 防⽌每个App 都要维持连接;
- 保证连接带来安全性和性能的挑战,由苹果公司统一来管理推送的服务器。
3.2 远程推送的原理:
- APP安装到手机、第一次启动时会将UUID和BundleID提供registerForRemoteNotifications函数发给APNs,然后再UIApplicationDelegate回调注册结果获取DeviceToken;
- APP再将DeviceToken发给推送服务器(一般为第三方推送服务器);
- 当需要推送信息时,服务器器将信息和设备 deviceToken 发送给APNs;
- APNs 根据 deviceToken 进⾏推送 ;
IOS推送原理3.3 UserNotifications.framework的简介
- iOS10 之后统一 UserNotifications.framework用来管理推送功能:
注意事项: 1)使用UNUserNotificationCenter单例管理全部推送 ;2)需要兼容低版本机型 。
- 统一的权限申请
在每次 App 启动时调用 requestAuthorizationWithOptions申请或者检查权限;
系统在首次会出现弹窗,之后保存用户选择;
远程/ 本地推送UNAuthorizationOptions相同。
UNAuthorizationOptions3.4 证书的配置 / Capabilities配置
3.5 本地推送
本地推送流程图3.6 远程推送
远程推送流程图4. 第三方推送平台:
- 个推;
- 极光推送;
-友盟推送;