美文网首页移动开发前线iOS 知识点互联网产品经理
给产品经理讲技术-iOS本地通知和推送通知

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

作者: workforu | 来源:发表于2016-08-28 14:56 被阅读1778次

    我们知道,在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(弹窗)是屏幕上一个标准的警告窗,需要用户与之交互才能解除(会打断用户当前的操作)。

    • 关于Alert的按钮:可能有一个或两个按钮。有两个按钮时,关闭按钮会放在左边,操作按钮(action button)会放在右边。如果只有一个按钮,默认显示为OK。
    • 关于Alert的标题与内容:一般标题是APP的名字,所有内容信息居中。一个完美的内容信息应该是聚焦内容而不是用户操作,尽量简短,一到二行即可,首字母要大写。

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

    • 它有两种形式,一是在主屏APP图标的右上角显示,二是在APP内部某些模块的图标右上角显示。图标小绷带适用于对信息的数量敏感且不太关注信息的时效性。

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

    具体的应用案例

    • 1、本地通知:app处于后台或已关闭时,显示通知
      例如某个游戏app 7天没有打开,提示你打开app

    • 2、本地通知:无论app处于何种状态,都显示通知
      提醒事项app,到达设定的提醒时间,以横幅及其他方式通知

    app在前台运行时提醒 app在后台运行时提醒 app已经关闭时进行提醒
    • 3、推送通知:app在前台运行着,不显示推送通知,只在后台或已关闭状态时才显示通知
      QQ在前台运行时不显示通知;已经退出到后台或已经关闭,收到一条未读信息
    QQ在后台运行时提醒 QQ已经关闭时进行提醒
    • 4、推送通知:无论app处于何种状态,都显示推送通知
      今日头条在前台运行或后台或已关闭时,如果服务器上要推送要闻,手机都能显示要闻推送(只是有时是用横幅的方式,有时是用弹窗)
    IMG_0602.PNG

    二、本地通知和推送通知

    两者的区别

    本地通知和推送通知

    iOS推送通知工作流程

    iOS推送通知工作流程

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

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

    三、扩展阅读

    四、参考资料

    如有错误,欢迎指正

    相关文章

      网友评论

      • 菜鸟上路123:你好,请问有本地通知的demo吗
      • 番茄鸡蛋汤圆:请问楼主,你的本地通知测试,当APP在前台的时候,你显示的通知,是自己实现的吗?如果不是的话,该怎么让APP在前台收到通知的时候也显示系统的通知栏呢?
      • 吃蘑菇De大灰狼:写的不错~开发转产品?
        吃蘑菇De大灰狼:@workforu 就需要你这样的产品:grin:
        workforu:@Mike的小屋 好巧,昨天还是开发,今天作为产品,第一天上班:smile:
      • 不会游泳的树懒:赞,我也在整理消息通知这块的内容,但没有你这么细致,受教了~
      • 熊宝宝pm:写的不错,受教
      • 88549278943c:然后有错别字,前天通知
        workforu:@是个罗卜 已修复,谢谢
      • h_z_pan:干货
      • serenachen:玉斌同学,虽然没有完全消化这篇文章,但是仍然从中获得了一些心得,像学习方法上的一些心得,已经关注你了,欢迎多发文章,再接再厉!(让我们顺路多捡点干货 :smile:
      • 5386b6c254ff:玉斌,看完你的分享很感慨,想起了大学那段看开发文档的时光。
      • Easonlike:玉斌,写的很好!其实自己也正在收集碎片化的推送知识,这个很有帮助!:stuck_out_tongue_closed_eyes:
        Easonlike:@朝闻道01 哈哈,我的作业也没写完…… 对,输出是强迫自己真正思考和归纳的过程!
        workforu:@Easonlike
        恩,收集完的话,最好自己写文章输出。
        碎片化阅读比较大的问题,就是你可以不断获取新知识、不断收藏,看似得到了很多,但没有多少是经过自己思考,自己真正理解的。
        解决这个问题,办法之一就是把收集的内容进行结构化整理,然后输出(不过这个过程特别耗时间,得不断看资料(也幸亏我有两显示屏,一个屏幕写,一个屏幕看资料),自己去甄别。话说,周末写这个,导致我作业PRD还没写好了 :joy: )。

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

      本文链接:https://www.haomeiwen.com/subject/dagtettx.html