当前位置:编程学习 > wap >>

【转载】极光推送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,那么会运行多个服务呢还是只运行一个服务? --------------------编程问答--------------------
引用 1 楼 u011887929 的回复:
请问如果多个app同时使用了JPush,那么会运行多个服务呢还是只运行一个服务?

可以多个 App 共享只运行一个服务。 --------------------编程问答-------------------- 请问为什么不用pull而选择push?哪者更好?或者说哪种环境下哪种更适宜? --------------------编程问答-------------------- 如果遇到网络连接不好的情况,服务端怎么去判断连接已经断开?
再网络断开到服务端侦测到网络断开这段时间内发送的消息,怎么能保证消息不丢失?
(或者可以将这段时间内发的消息转为离线消息吗?如果可以的话是怎么处理的;如果不能,想请问一下对于及时消息出现这样的情况时,如何能保证消息不丢失)
多谢大牛!! --------------------编程问答--------------------
引用 4 楼 u011705101 的回复:
如果遇到网络连接不好的情况,服务端怎么去判断连接已经断开?
再网络断开到服务端侦测到网络断开这段时间内发送的消息,怎么能保证消息不丢失?
(或者可以将这段时间内发的消息转为离线消息吗?如果可以的话是怎么处理的;如果不能,想请问一下对于及时消息出现这样的情况时,如何能保证消息不丢失)
多谢大牛!!

1)服务器端是不方便去检测到网络断开的: 一方面客户端可部分检查到;还有一部分由客户端也无法检查到,这就需要通过心跳机制来保证。
2)对于部分没有检测到的网络实际中断,的确会有某个时间段消息无法实时推送到。但这个概率并不高。
3)对于客户羰还未收到的消息,都会有离线消息。下次客户端上线时再推送下去。 --------------------编程问答-------------------- 稳定吗?和Androidpn相比有什么优缺点? --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 6 楼 u011950663 的回复:
稳定吗?和Androidpn相比有什么优缺点?


androidpn 更多多个开源项目的简单拼装,并不合适做手机上推送,也没有人去不断更新、维护。 JPush 是专业的第三方推送服务。 

JPush Blog 有篇文章专门讲你说的问题,请参考:http://blog.jpush.cn/androidpn_android_push_problem/ --------------------编程问答-------------------- 能跨平台推送吗? --------------------编程问答--------------------
引用 9 楼 u012057752 的回复:
能跨平台推送吗?


目前支持 Android / iOS 平台,正在准备支持  Windows Phone。 

一次 APi 调用可同时向多个平台推送;从一个平台可推送到另外一个平台。 --------------------编程问答-------------------- 能否推送给不用的用户,不同的消息? --------------------编程问答--------------------
引用 11 楼 u012085552 的回复:
能否推送给不用的用户,不同的消息?

JPush 支持向单个用户、一群用户,或者广播向所有用户。 

并且,JPush 通过 tag/alias 向单个用户、一群用户推送时,不需要开发者自己去维护对应关系。  这是 JPush 相比其他一些推送服务的一个优点。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 长连接,需要多流量吗?实时性怎么样? --------------------编程问答-------------------- 运行一个服务就能实现了 --------------------编程问答-------------------- 长连接,才可以做到秒内送达。
流量消耗很少,因为只是很长时间才做一次心跳,并且每次心跳流量小。

引用 14 楼 u012240227 的回复:
长连接,需要多流量吗?实时性怎么样?
--------------------编程问答-------------------- 自己做推送的话,要搭建服务器么? --------------------编程问答-------------------- 百度推送怎么样.我也用过JPUSH.但IOS上不是很好. --------------------编程问答--------------------
引用 17 楼 u012288844 的回复:
自己做推送的话,要搭建服务器么?


说的是基于 JPush 来做? 还是自己部署开源的? 
我假设你说的是基于 JPush 做。  
客户端集成了 SDK后,JPush Web Portal 上可以做推送动作。 你也可以调用 API 进行推送,这时是在你自己的代码里发起了。 --------------------编程问答-------------------- 我想问一下对用网络断一段时间再连接网络一段时间后很少收到push的问题,这个怎么解决? --------------------编程问答--------------------
引用 20 楼 u012408054 的回复:
我想问一下对用网络断一段时间再连接网络一段时间后很少收到push的问题,这个怎么解决?


推送及时被收到,是依赖于客户端到服务器端的连接维持。

如果客户端不能及时收到,则说明网络被中断了。 这一方面与网络稳定性有关,另一方面,也与客户端维持连接的策略有关。 --------------------编程问答-------------------- 请问  极光 会不会 被拦截呢 --------------------编程问答--------------------
引用 22 楼 u012447957 的回复:
请问  极光 会不会 被拦截呢

在 Android 上被安全软件拦截? 

由于推送,是智能手机的基本功能。   极光推送只是帮 App 开发者提供一个功能模块,以减轻 App开发者的工作量。   所以极光推送不会被拦截 --------------------编程问答-------------------- 推送机制是否需要用到广播机制 --------------------编程问答--------------------
引用 24 楼 u012479842 的回复:
推送机制是否需要用到广播机制


你说的是 Android Broadcast ?  是的。 --------------------编程问答-------------------- jpush用的什么协议呢?xmpp吗?如果不是,JPush和xmpp有什么区别呢? --------------------编程问答--------------------
引用 26 楼 u012558757 的回复:
jpush用的什么协议呢?xmpp吗?如果不是,JPush和xmpp有什么区别呢?


JPush 不用 XMPP,是自己实现的协议。
XMPP 设计时就没有针对移动端,协议稍复杂,比较冗余。当然也有其灵活性。 --------------------编程问答-------------------- 貌似我们自己弄的这些小应用还用不到推送服务啊~ --------------------编程问答--------------------
引用 28 楼 u012630770 的回复:
貌似我们自己弄的这些小应用还用不到推送服务啊~


这要看你如何想要去运营你的 App。 --------------------编程问答-------------------- 如何根据地图定位来实现特殊推送,比如说周边服务 --------------------编程问答--------------------
引用 30 楼 u012524582 的回复:
如何根据地图定位来实现特殊推送,比如说周边服务


极光推送有基于地理位置推送的功能 --------------------编程问答-------------------- 不错 --------------------编程问答-------------------- 火钳刘明 --------------------编程问答-------------------- 开发指南非常详细,按照这个配置,就可以出来了。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,