移动开发前线iOS 知识点互联网产品经理

给产品经理讲技术-iOS本地通知和推送通知

2016-08-28  本文已影响1778人  workforu

我们知道,在iOS系统中,当用户正在前台操作一个app时,app可以有很多种方式告诉用户一些信息。
然而,任何时候都只有一个app在前台运行,其他大部分的app都处于在后台运行或已关闭的状态,并不在前台运行。
那么,当这些不在前台运行的app,在本地或互联网上发生了一些用户感兴趣的事情,比如说淘宝app-订单状态改变,需要通知客户订单发货了,提醒事项app-到达用户设置的提醒时间了,需通知用户。

此时,该如何告诉用户这些信息呢?

iOS通知机制就是为了解决这个问题:即使app不在前台运行,iOS通知机制也能告知用户,app在本地或互联网上,发生了一些他感兴趣的信息。

简单来说,iOS通知机制主要分两种:本地通知和推送通知。本地工具类app以本地通知为主,互联网app以远程通知为主。

作为产品经理,了解一下通知的基本原理,有利于更好的与开发交流(例如避免提出一些无法实现的需求),更好的利用通知机制(例如制定一些运营相关的通知策略)

一、iOS通知机制的基本概念

我们先简单介绍一下iOS通知的基本概念

iOS通知分类

iOS通知分本地通知和推送通知,其展现形式是一样的(Banner、Alert、Badge、Sound),其主要区别在于通知发起方是app本身还是app提供商服务器-苹果APNs,是否需要联网。

注意,某些文章把通知分成本地推送通知和远程推送通知,是翻译上的问题,苹果开发文档中明确写了 Local notifications and remote notifications are the two types of user notifications. (Remote notifications are also known as push notifications.)。
推送在这里特制服务器Push信息的操作,实在要写成本地推送通知和远程推送通知,也最好是本地发送通知,远程发送通知(苹果开发文档中反复提到一个词 send、deliver ,应该理解成发送,而不是推送)

通知的常用展示形式:

Banner(横幅)是屏幕上一个小的、半透明的view,展示几秒钟后会自动消失。除了通知信息外,Banner还会展示小版本的icon,这样用户看一眼就知道哪个app发送了通知。

Alert(弹窗)是屏幕上一个标准的警告窗,需要用户与之交互才能解除(会打断用户当前的操作)。

Badge(徽标/标记)是应用icon右上角的红色圆形小标记,用以展示未处理的通知项目。app无权定制徽标的颜色和尺寸。

Sound(声音)是一种很好的信息提醒方式,在嘈杂的环境中能立马吸引用户的注意力,一般结合Badge和Alert使用,建议重要的提醒使用声音,避免干扰用户;定义管理好声音的冲突。

具体的应用案例

app在前台运行时提醒 app在后台运行时提醒 app已经关闭时进行提醒 QQ在后台运行时提醒 QQ已经关闭时进行提醒 IMG_0602.PNG

二、本地通知和推送通知

两者的区别

本地通知和推送通知

iOS推送通知工作流程

iOS推送通知工作流程

Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。
上图可以分为三个阶段:

第一阶段:应用服务提供商从服务器端把要发送的消息和设备令牌(device token)发送给苹果的消息推送服务器APNs。
第二阶段:APNs根据设备令牌在已注册的设备(iPhone、iPad、iTouch、mac等)查找对应的设备,将消息发送给相应的设备。
第三阶段:客户端设备接将接收到的消息传递给相应的应用程序,应用程序根据用户设置弹出通知消息。

三、扩展阅读

四、参考资料

如有错误,欢迎指正

上一篇 下一篇

猜你喜欢

热点阅读