导读:
- 一、什么是通知
- 二、通知的接收特点
- 三、通知的呈现特点
- 四、本地通知的创建步骤
- 五、远程通知的原理
一、什么是通知
- 通知是没有运行在前台的应用,为用户推送其相关消息的一种方式;分为本地通知和远程通知现种形式。
- 本地通知:(Local Notification):手机应用本身的通知,不需要服务器的支持,比如:闹铃、代办事项的提醒...
- 远程通知:(Remote Notification)从服务器发送过来的通知。
- 被操作系统显示时,本地通知和推送通知看起来一样。
二、通知的接收特点
- APP关闭时,可以接收并显示通知。
- APP打开并处于后台时,可以接收并显示通知。
- APP打开并处于前台时,可以接收但不会显示通知。
- 点击通知后,默认会自动打开发出通知的app。
三、通知的呈现特点
- 在屏幕顶部显示一块横幅(显示具体内容)
- 在屏幕中间弹出一条消息(显示具体内容)
- 在锁屏上显示通知(显示具体内容)
- 在呈现通知时播放音效(提醒作用)
- 在呈现通知的同时,更新App图标右上角的数字(说明新内容的数量)。
- 用户接收的推送通知,都会展示在通知中心(手指从屏幕顶部往下拉的窗口)(显示具体的内容)。
四、本地通知的创建步骤
1. 创建一个本地通知 UILocalNotification 2. 设置处理通知的时间 fireDate 3. 设置通知的内容 通知主题 声音 图标数字 4. 配置通知传递的自定义参数 userinfo (这一步不是必须的) 5. 调用通知 可以使用 scheduleLocalNotification (按照计划调度通知),也可以使用 presentLocalNotification (立即发出通知)
注意: iOS8 及以后要求申请用户同意
五、远程通知的原理
iPhone ipad 对于应用程序在后台运行有诸多限制,考虑到手机电池电量,应用不允许在后台进行过多的操作。因此,当用户切换到其他程序后,原先的程序无法保持运行状态。对于那些需要保持持续连接状态的应用程序(比如社区网络应用),将不能收到实时的信息。
为解决这一限制,苹果推出了APNs(苹果推送通知服务 Apple Push Notification services)。APNs 允许设备与苹果的推送通知服务器保持常连接状态。当你想发送一个推送通知给某个用户的iPhone上的应用程序时,你可以使用 APNs 发送一个推送消息给目标设备上已安装的某个应用程序。
-
远程通知原理:
- 由App向iOS设备发送一个注册通知
- iOS设备向APNs远程推送服务器发送App的Bundle Id和设备的UDID
- APNs根据设备的UDID和App的Bundle Id生成deviceToken再发回给App
- 在App再将deviceToken发送给远程推送服务器(商家自己的服务器), 由服务器保存在数据库中
- App再将deviceToken发送给远程推送服务器(商家自己的服务器), 由服务器保存在数据库中
- 当商家想发送推送时, 在远程推送服务器中输入要发送的消息并选择发给哪些用户的deviceToken,由远程推送服务器发送给APNs,APNs根据deviceToken发送给对应的用户。
- deviceToken是由APNs生成的一个专门找到你某个手机上的App的一个标识码。
- deviceToken 可能会变,如果你更改了你项目的bundle Identifier或者APNs服务器更新了可能会变。