目前市场上的消息推送方式有两种:通知和透传。
什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理。透传消息,就是消息体格式及内容,对于传递的通道来说是不去过问的,通道只负责消息的传递,对消息不做任何处理,当客户端接收到透传消息后,由客户端自己来决定如何处理消息。正是因为透传消息可以自定义消息体,也可以自定义消息的展示方式及后续动作处理,所以弥补了通知栏消息的一些不足之处(通知栏消息是直接展示出来,相关的动作客户端无法捕获到)。
 
透传消息主要有如下几个方面的特点:
1. 后台处理,用户无感知。
2. 前台展示,提醒用户。
3. 展示的多样化。

整个透传消息的流程如下:根据个推提供的API接口或在个推开发者平台上推送透传消息,个推服务端接收到推送的消息后,不做任何处理,直接发送给目标用户。当客户端SDK接收到透传消息后,以广播方式发送给客户端,客户端在配置的第三方BroadReceiver里接收到透传消息后进行处理。

透传消息的消息体,可以根据不同的需求传递不同的参数或格式。如传递一个简单的字符串,或传递一个Json字符串,里面根据需求传递需要的字段。
用户无感知的透传,如:更新相关信息,在主界面中相关栏位用红点标识进行弱提醒,推送一条命令用来检测用户是否有登录等。通知栏消息虽然方便的提醒用户,但也在一定程度上给用户带来了打扰,用户无感知的消息推送有时效果会更好。
用户有感知的透传:把透传消息处理成通知栏展示出来,提醒用户方便点击查看相关信息(如个人帐单信息),直接打开应用或跳转到指定的应用界面中(根据透传消息的相关参数来判断跳转到哪一个指定的界面,相关参数传递要打开的界面的类名或Intent即可)等。对于开发者,处理成通知栏的相关事件也是可以捕获的,如通知栏的展示、点击等事件都可以进行捕获,以方便进行后续的操作。
因透传消息可以自己处理成通知栏内容展示,所以通知栏的样式也可以根据需求来做对应的改变。在Android 4.4及以上的系统,通知栏可以是样式丰富的通知栏,放入图片和视频等;可以展示普通的通知,也可以展示多样化的通知。

APP消息推送:通知和透传的更多相关文章

  1. APP消息推送是否进入消息中心和click、receive事件分析

    前端时间研究APP消息推送的机制,由于机型.版本的碎片化,消息推送的机制不太好理解,所以总结下,放在博文里以备后续查阅. 安卓Android系统的消息推送:     安卓 推送方式 应用状态 类型 消 ...

  2. .NET向APNS苹果消息推送通知

    一.Apns简介: Apns是苹果推送通知服务. 二.原理: APNs会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书以确定其为苹果设备):然后,将服务器的信息接收并且 ...

  3. 淘宝APP消息推送模型

    为什么到了2020年,"统一推送联盟"依旧无法起显著作用? - 知乎 https://www.zhihu.com/question/370632447 https://mp.wei ...

  4. 浅谈APP消息推送

    作为移动端APP产品运营最重要的运营手段,消息推送(push)被越来越多的APP厂商所重视,在信息泛滥的移动互联网时代,手机APP应用安装得越来越多,小小的手机屏幕每天收到的消息推送也越来越多,站在用 ...

  5. How Javascript works (Javascript工作原理) (九) 网页消息推送通知机制

    个人总结: 1.介绍了网页消息推送通知机制 全文地址:https://github.com/Troland/how-javascript-works 这是 JavaScript 工作原理的第九章. 现 ...

  6. IOS开发之实现App消息推送

    转自:http://blog.csdn.net/shenjie12345678/article/details/41120637 第一部分 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps: ...

  7. IOS开发之实现App消息推送(最新)

    好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多 ...

  8. IOS8开发之实现App消息推送

    第一部分 Apple Push Notification Service 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出解释的概要图. ...

  9. vue中使用stompjs实现mqtt消息推送通知

    最近在研究vue+webAPI进行前后端分离,在一些如前端定时循环请求后台接口判断状态等应用场景用使用mqtt进行主动的消息推送能够很大程度的减小服务端接口的压力,提高系统的效率,而且可以利用mqtt ...

随机推荐

  1. 文本比较算法三——SUNDAY 算法

    SUNDAY 算法描述: 字符串查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore).两个算法在最坏情况下均具有线性的查找时间.但是在实用上 ...

  2. php类与对象

    1.类与对象 对象:实际存在该类事物中每个实物的个体.$a =new User(); 实例化后的$a 引用:php的别名,两个不同的变量名字指向相同的内容 封装: 把对象的属性和方法组织在一个类(逻辑 ...

  3. Thinkphp .htaccess 与 httpd.ini文件重定向转换问题

    .htaccess 文件内容 RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !- ...

  4. PHP-redis中文文档

    phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/wi ...

  5. C# 接口基础

     接口只包含方法.属性.事件或索引器的签名. 实现接口的类或结构必须实现接口定义中指定的接口成员 接口中可以包含字段吗? 第一次被问到这个问题的时候被问愣住了,只能回答:印象当中没见过在接口中定义变量 ...

  6. How to take partial screenshot with Selenium WebDriver in python

    from selenium import webdriver from PIL import Image fox = webdriver.Firefox() fox.get('http://stack ...

  7. MySQL 利用SQL线程对Binlog操作

    背景: 对于MySQL的binlog的查看都是用其自带的工具mysqlbinlog进行操作的,其实还有另一个方法来操作binlog,就是Replication中的SQL线程去操作binlog,其实bi ...

  8. 警告: 程序集绑定日志记录被关闭(IIS7 64位系统)

    部署一个.NET程序在IIS7服务器,出现如下信息: 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: S ...

  9. yum Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

    今天使用yum时出现如上问题,解决办法: 1.编辑:/etc/yum.repos.d/epel.repo 将baseurl的注释取消, mirrorlist注释掉,如图:

  10. python学习 小游戏

    基于python3.4 while循环 #!/usr/bin/python3 #-*- coding=utf-8 -*- import random import sys import os luck ...