【转载】极光推送JPush试用
最近要做推送的功能,于是去了解了下社区推荐的极光推送JPush开发指南非常详细,按照这个配置,就可以出来了。
eoe在线课堂也讲过这个: http://edu.eoe.cn/course/view/cid/9.html
记录几点(摘自官方文档):
1.设置
AndroidManifest.xml
libs/jpush-sdk-release 1.x.y.jar
libs/armeabi/libsys 1.x.y.so
2.基础API
• init 初始化SDK
• setDebugMode 设置调试模式
3.MyReceiver
4.自定义通知样式
定制声音、震动、闪灯等 Notification 样式。
5.高级自定义通知样式
基于基础的 PushNotificationBuilder,可进一步地定制 Notification 的 Layout。
6.设置保留最近通知条数
默认5条
7.设置允许推送时间
参数说明
Context context 应用的ApplicationContext
Set days 0表示星期天,1表示星期一,以此类推。 (7天制,Set集合里面的int范围为0到6)
Sdk1.2.9 – 新功能:set的值为null,则任何时间都可以收到消息和通知,set的size为0,则表示任何时间都收不到消息和通知.
int startHour 允许推送的开始时间 (24小时制:startHour的范围为0到23)
int endHour 允许推送的结束时间 (24小时制:endHour的范围为0到23)
8.别名与标签
调用此 API 来同时设置别名与标签。
需要理解的是,**这个接口是覆盖逻辑,而不是增量逻辑。即新的调用会覆盖之前的设置。**
在之前调用过后,如果需要再次改变别名与标签,只需要重新调用此 API 即可。
Android 在调用此接口时,建议 Set 的实现使用LinkedHashSet,即会保证排序的 Set。这样,当你调用接口 tags 多于 100 个时,保证前 100 个被 JPush 成功地设置。
参数定义
alias
null 此次调用不设置此值。(注:不是指的字符串"null")
"" (空字符串)表示取消之前的设置。
每次调用设置有效的别名,覆盖之前的设置。
有效的别名组成:字母(区分大小写)、数字、下划线、汉字。
限制:alias 命名长度限制为 40 。
tags
null 此次调用不设置此值。(注:不是指的字符串"null")
空数组或列表表示取消之前的设置。
每次调用至少设置一个 tag,覆盖之前的设置,不是新增。
有效的标签组成:字母(区分大小写)、数字、下划线、汉字。
限制:每个 tag 命名长度限制为 40,最多支持设置 100 个 tag,但总长度不得超过1K字节。
9.通知与自定义消息
通知
或者说 Push Notification,即指在手机的通知栏(状态栏)上会显示的一条通知信息。这是 Android / iOS 的基本功能。
一条通知,简单的填写纯文本的通知内容即可。
通知主要用于提示用户的目的。应用加上通知功能,有利于提高应用的活跃度。
自定义消息
是极光推送自己的概念。
自定义消息不是通知,所以不会被SDK展示到通知栏上。其内容完全由开发者自己定义。
自定义消息主要用于应用的内部业务逻辑。一条自定义消息推送过来,有可能没有任何界面显示。
声明:eoe文章著作权属于作者,受法律保护,转载时请务必以超链接形式附带如下信息
原文作者: eoe耗子
原文地址: http://my.eoe.cn/eoe_haozi/archive/2666.html
android push --------------------编程问答-------------------- 请问如果多个app同时使用了JPush,那么会运行多个服务呢还是只运行一个服务? --------------------编程问答--------------------
可以多个 App 共享只运行一个服务。 --------------------编程问答-------------------- 请问为什么不用pull而选择push?哪者更好?或者说哪种环境下哪种更适宜? --------------------编程问答-------------------- 如果遇到网络连接不好的情况,服务端怎么去判断连接已经断开?
再网络断开到服务端侦测到网络断开这段时间内发送的消息,怎么能保证消息不丢失?
(或者可以将这段时间内发的消息转为离线消息吗?如果可以的话是怎么处理的;如果不能,想请问一下对于及时消息出现这样的情况时,如何能保证消息不丢失)
多谢大牛!! --------------------编程问答--------------------
1)服务器端是不方便去检测到网络断开的: 一方面客户端可部分检查到;还有一部分由客户端也无法检查到,这就需要通过心跳机制来保证。
2)对于部分没有检测到的网络实际中断,的确会有某个时间段消息无法实时推送到。但这个概率并不高。
3)对于客户羰还未收到的消息,都会有离线消息。下次客户端上线时再推送下去。 --------------------编程问答-------------------- 稳定吗?和Androidpn相比有什么优缺点? --------------------编程问答-------------------- 除 --------------------编程问答--------------------
androidpn 更多多个开源项目的简单拼装,并不合适做手机上推送,也没有人去不断更新、维护。 JPush 是专业的第三方推送服务。
JPush Blog 有篇文章专门讲你说的问题,请参考:http://blog.jpush.cn/androidpn_android_push_problem/ --------------------编程问答-------------------- 能跨平台推送吗? --------------------编程问答--------------------
目前支持 Android / iOS 平台,正在准备支持 Windows Phone。
一次 APi 调用可同时向多个平台推送;从一个平台可推送到另外一个平台。 --------------------编程问答-------------------- 能否推送给不用的用户,不同的消息? --------------------编程问答--------------------
JPush 支持向单个用户、一群用户,或者广播向所有用户。
并且,JPush 通过 tag/alias 向单个用户、一群用户推送时,不需要开发者自己去维护对应关系。 这是 JPush 相比其他一些推送服务的一个优点。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 长连接,需要多流量吗?实时性怎么样? --------------------编程问答-------------------- 运行一个服务就能实现了 --------------------编程问答-------------------- 长连接,才可以做到秒内送达。
流量消耗很少,因为只是很长时间才做一次心跳,并且每次心跳流量小。
--------------------编程问答-------------------- 自己做推送的话,要搭建服务器么? --------------------编程问答-------------------- 百度推送怎么样.我也用过JPUSH.但IOS上不是很好. --------------------编程问答--------------------
说的是基于 JPush 来做? 还是自己部署开源的?
我假设你说的是基于 JPush 做。
客户端集成了 SDK后,JPush Web Portal 上可以做推送动作。 你也可以调用 API 进行推送,这时是在你自己的代码里发起了。 --------------------编程问答-------------------- 我想问一下对用网络断一段时间再连接网络一段时间后很少收到push的问题,这个怎么解决? --------------------编程问答--------------------
推送及时被收到,是依赖于客户端到服务器端的连接维持。
如果客户端不能及时收到,则说明网络被中断了。 这一方面与网络稳定性有关,另一方面,也与客户端维持连接的策略有关。 --------------------编程问答-------------------- 请问 极光 会不会 被拦截呢 --------------------编程问答--------------------
在 Android 上被安全软件拦截?
由于推送,是智能手机的基本功能。 极光推送只是帮 App 开发者提供一个功能模块,以减轻 App开发者的工作量。 所以极光推送不会被拦截 --------------------编程问答-------------------- 推送机制是否需要用到广播机制 --------------------编程问答--------------------
你说的是 Android Broadcast ? 是的。 --------------------编程问答-------------------- jpush用的什么协议呢?xmpp吗?如果不是,JPush和xmpp有什么区别呢? --------------------编程问答--------------------
JPush 不用 XMPP,是自己实现的协议。
XMPP 设计时就没有针对移动端,协议稍复杂,比较冗余。当然也有其灵活性。 --------------------编程问答-------------------- 貌似我们自己弄的这些小应用还用不到推送服务啊~ --------------------编程问答--------------------
这要看你如何想要去运营你的 App。 --------------------编程问答-------------------- 如何根据地图定位来实现特殊推送,比如说周边服务 --------------------编程问答--------------------
极光推送有基于地理位置推送的功能 --------------------编程问答-------------------- 不错 --------------------编程问答-------------------- 火钳刘明 --------------------编程问答-------------------- 开发指南非常详细,按照这个配置,就可以出来了。
补充:移动开发 , Android