最近在做mqtt及其他消息推送的功能,推送服务挺多的,小米推,极光推,华为推,个推等,当然还有苹果的apns。感觉都差不多,尝试了apns,小米推和个推,各个厂家都提供的有sdk,demo。

关于通知消息的区别:

通知:发送后会在系统通知栏收到展现,同时响铃或振动提醒用户。 ( mqtt不知道能不能发送通知,还在研究中...)
消息:以透传的形式传递给客户端,无显示,发送后不会在系统通知栏展现,第三方应用后需要开发者写代码才能看到。

 

什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理。透传消息,就是消息体格式及内容,对于传递的通道来说是不去过问的,通道只负责消息的传递,对消息不做任何处理,当客户端接收到透传消息后,由客户端自己来决定如何处理消息。正是因为透传消息可以自定义消息体,也可以自定义消息的展示方式及后续动作处理,所以弥补了通知栏消息的一些不足之处(通知栏消息是直接展示出来,相关的动作客户端无法捕获到)。

透传消息主要有如下几个方面的特点
1. 后台处理,用户无感知。
2. 前台展示,提醒用户。
3. 展示的多样化。

整个透传消息的流程如下:

根据个推提供的API接口或在个推开发者平台上推送透传消息,个推服务端接收到推送的消息后,不做任何处理,直接发送给目标用户。

当客户端SDK接收到透传消息后,以广播方式发送给客户端,客户端在配置的第三方BroadReceiver里接收到透传消息后进行处理。

透传消息的消息体,可以根据不同的需求传递不同的参数或格式。如传递一个简单的字符串,或传递一个Json字符串,里面根据需求传递需要的字段。

用户无感知的透传,如:更新相关信息,在主界面中相关栏位用红点标识进行弱提醒,推送一条命令用来检测用户是否有登录等。通知栏消息虽然方便的提醒用户,但也在一定程度上给用户带来了打扰,用户无感知的消息推送有时效果会更好。
用户有感知的透传:把透传消息处理成通知栏展示出来,提醒用户方便点击查看相关信息(如个人帐单信息),直接打开应用或跳转到指定的应用界面中(根据透传消息的相关参数来判断跳转到哪一个指定的界面,相关参数传递要打开的界面的类名或Intent即可)等。对于开发者,处理成通知栏的相关事件也是可以捕获的,如通知栏的展示、点击等事件都可以进行捕获,以方便进行后续的操作。

因透传消息可以自己处理成通知栏内容展示,所以通知栏的样式也可以根据需求来做对应的改变。在Android 4.4及以上的系统,通知栏可以是样式丰富的通知栏,放入图片和视频等;可以展示普通的通知,也可以展示多样化的通知。

 

参考: http://www.oschina.net/question/1782938_238427

 

posted @ 2016-03-13 18:49 南极山 阅读(12275) 评论(0) 推荐(0) 编辑
摘要: 从网上找的: 1几个最重要的快捷键 代码助手: Alt+/快速修正:Ctrl+1(数字1)打开外部Java文档:Shift+F2显示搜索对话框:Ctrl+H快速Outline:Ctrl+O 切换编辑器:Ctrl+E打开资源:Ctrl+Shift+R打开类型:Ctrl+Shift+T 自动排版Form 阅读全文
posted @ 2015-11-04 09:25 南极山 阅读(480) 评论(1) 推荐(0) 编辑
摘要: 参考: http://www.2cto.com/database/201501/371451.html 安装环境 CentOS版本:CentOS-7 因为之前安装过,没有成功,但是有之前安装的文件,要先卸载 网上找了一个卸载的过程如下: a)查看系统中是否以rpm包安装的mysql: [root@c 阅读全文
posted @ 2015-11-02 23:43 南极山 阅读(1801) 评论(0) 推荐(0) 编辑
摘要: 发现了一个巧妙的实现:需要检查一个对象(Object)是否为空,即不包含任何元素。Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair)。检查一个对象是否为空,等价于检查对象中有没有键值对。写成代码,形如:if(isEmptyObject(obj)){/... 阅读全文
posted @ 2015-06-09 18:50 南极山 阅读(25383) 评论(2) 推荐(0) 编辑
摘要: 转载: http://www.cnblogs.com/yuejin/archive/2012/12/18/2822595.htmljQuery中slideUp 、slideDown、animate等动画运用时,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,... 阅读全文
posted @ 2015-01-27 14:48 南极山 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 总结一个在C#中如何使用资源的方法:一:使用本地文件1、将本地要加入的资源文本(视频,图片,文本或其它)加入项目,比如我们现在加入一个up.bmp的图片到项目中,且放在文件夹Resources下面,2、将up.bmp的生成操作设置为"嵌入的资源"3、读取资源:Assembly assembly = ... 阅读全文
posted @ 2014-12-16 22:35 南极山 阅读(7686) 评论(0) 推荐(1) 编辑
摘要: 使用C#调用windows API(从其它地方总结来的,以备查询)C#调用windows API也可以叫做C#如何直接调用非托管代码,通常有2种方法:1. 直接调用从 DLL 导出的函数。2. 调用 COM 对象上的接口方法我主要讨论从dll中导出函数,基本步骤如下:1.使用 C# 关键字 stat... 阅读全文
posted @ 2014-11-29 21:13 南极山 阅读(64309) 评论(2) 推荐(6) 编辑
摘要: 类图(Class Diagram)简介类图是面向对象分析(OOA,Object-Oriented Analysis)和面向对象设计(OOP,Object-Oriented Deisgn)思想的重要工具,是业务结构建模的重要工具。需求中提到的各种业务概念,人物等,经过抽象后都可以视之为类。将某类东西归... 阅读全文
posted @ 2014-10-29 23:58 南极山 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 用例建模简介用例建模是UML建模的一部分,它也是UML里最基础的部分。用例建模的最主要功能就是用来表达系统的功能性需求或行为。用例图重点描述用户需求。它描述需求、用户和主要组件之间的关系。它不会详细描述用户需求;在可链接到每个用例的其他关系图或文档中可详细描述这些需求。用例图是UML的九个图中较为重... 阅读全文
posted @ 2014-10-29 19:54 南极山 阅读(1345) 评论(0) 推荐(0) 编辑
摘要: 主要描述的是SQL Server使用convert取得datetime日期数据的实际操作流程,在实际操作中用SQL Server数据库中用convert来获取datetime日期数据,以下实例包含各种日期格式的转换。语句及查询结果:SelectCONVERT(varchar(100),GETDATE... 阅读全文
posted @ 2014-08-27 11:24 南极山 阅读(6143) 评论(0) 推荐(1) 编辑
点击右上角即可分享
微信分享提示