android极光推送实例可以推送到android吗

02:20:41 UTC
极光推送是为 App 提供第三方推送服务的平台之一,它提供四种消息形式:通知,自定义消息,富媒体和本地通知。笔者将基于官方说明与个人理解来谈一下这四种消息。本篇为 Android 篇,。
Push Notification,即指在手机的通知栏(状态栏)上会显示的一条通知信息。Android: 依靠 JPush service ,由 JPush SDK 实现在手机通知栏的展示。
Android 通知消息的流程是这样的:
我们可以调用发起推送请求,也可以通过极光官网控制台推送。
请求在参数要求上基本正确——请求成功,返回 msgid (这条消息的 ID 标识),返回 200(成功)或由极光判断的推送失败(一般是 );参数错误,有返回错误码。
极光服务器处理该请求:
若该 App ,极光服务器就会把这条消息在线下发给它。
如果长连接是断开的,那么就会免费保存 5 条离线消息。
如果该 App 在你推送消息时设定的离线保存时间(time_to_live) 时间内,重连上了长连接,该条消息就会下发给 App 。
如果离线时间内,推送的消息超过5条,最先保存的消息会被删掉。
如果过了time_to_live,该条消息也会被删掉,没有收到的 App 就不会再收到了。
这里涉及到长连接断开的问题:
RTC 会定时发送心跳去触发连接。
断网,关机,进程不在(被杀死),主动调用 stoppush 都会导致断开。
会导致断网和进程不在。
解决办法:添加极光提供的;文档提示用户对 App 进行。
App 收到了通知,由 JPush SDK 进行展示,和 iOS 一样,如果通知内容( alert )为空,也是默认不展示的, 但能获取到消息中的数据,以作他用。
我们可以简单的。
在客户端定制了通知栏样式后,需要使用该通知栏时,在推送的时候就 记得要写对应的通知栏编号。(API 推送时,V2 接口的字段是n_builder_id,V3 接口的字段是builder_id。V2 功能较少,且在2015年已不再维护,建议大家尽快升级 V3 ,可以帮助我们更好的做推送。)
这里容易有问题的是图标显示不正常,解决方案:
若没有res/drawable-xxxx/jpush_notification_icon这个资源,那么通知栏默认使用应用图标作为通知 icon 。
在 5.0 以上系统将应用图标作为statusbar icon可能显示不正常,我们可以定义 没有阴影和渐变色的 icon 同名替换res/drawable-xxxx/jpush_notification_icon这个文件。
应该将 res 文件夹下的 所有 icon 文件都替换成自己的图标文件。
还有一个可能是:小米手机的 launcher 缓存可能有bug,按照上述要求配置好后, 重启手机,再测试。
点击该条通知消息:
如果我们在AndroidManifest.xml里没有配置Action - cn.jpush.android.intent.NOTIFICATION_OPENED,JPush SDK 默认打开 App 首页,相当于点击桌面图标的效果。
如果我们需要做点击跳转,那么就得在AndroidManifest.xml里配置此 receiver action,SDK 在点击后不会做动作。我们需要在自己写的 BroadcastReceiver类里处理,打开某Activity。
这里可能遇到的问题是:某些手机系统下,App 从后台退出了,但是能收到通知消息,点击却没有反应,无法跳转。
可能的原因: Android 应用退出后,可能长连接还存在,所以能收到消息,但是由于手机系统对 App 的限制,导致点击通知栏不能重启 App 成功。
解决办法:打开手机系统的限制。
具体会出现该情况的手机系统和后台退出后还能收到消息的前提条件(是否需要将 JPush 相关组件设置为一个独立进程)等还没有测试验证过。
Android 关闭通知:可以达到关闭通知效果的有两个办法,我们可以根据自己的需求去选用,如果在 UI 层面加一个关闭的按钮,那么对应的代码层面也是去选用这两种 API 。
一种本地的状态操作,相当于手动终止 push 服务的效果,这个会导致同时关掉对所有类型消息的接收。
极光推送所有的其他 API 调用都无效。
必须调用 resumepush 才能恢复推送服务。
恢复后,如果推送的消息还在time_to_live内,客户端会收到这条消息。
置空别名/标签(极光官网有总结一个 可以仔细阅读一下)「旧版本接口的置空 = 新版本接口的删除操作」
一般需求是:用户退出登录后不要收到通知。对应的操作是:项目的用户退出登录—置空别名—点击登录—重设别名。
如果用户是直接杀死 A 手机的 App ,然后在 B 手机登录。若你们不允许多设备登录,希望 A 手机不再收到消息,那么应该在自己的后台判断出 A 用户“ 换了设备登录” ,让 A 手机自动做登出操作,;或者在去置空 A 手机设置的别名。(判断的方法可以是:将用户某唯一信息与 一起上传,registrationID 与之前相比改变了,则判断为更换了设备。)
需要注意:别名置空 至 重设别名 期间,推送的消息, 在重设别名后,设备不会收到。若需要这期间的消息也被收到,需要自己服务器对此进行判断、保存、并在客户端重设别名后,重新向极光发起推送请求。若需要用户的历史推送消息可被查询,需要自己服务器那边去保存。
2.自定义消息
iOS 需要当 App 处于前台才能收到,Android 不需要处于前台。
只接收,不展示,需要我们自己做接收处理,并且自己 通知栏,或者转为来展示。
需要依靠 App 与极光服务器建立的长连接。
Android 需要我们在AndroidManifest.xml里配置Action - cn.jpush.android.intent.MESSAGE_RECEIVED,并且在自己写的BroadcastReceiver里接收处理,。
什么时候使用它?
主要用于应用的内部业务逻辑和特殊展示需求,譬如:
需要自定义通知栏时(Android 要播放自定义的声音文件等情况)。
在 App 项目内的消息提醒。
有条件的消息提醒(譬如只让处在某一页面的用户看到该条消息)。
可能会犯的错误
弄混自定义内容(字段 extras)与自定义消息(Message)
一般会出现的疑问是: Android 点击通知栏无法获取到自定义的内容
推送时 extras 是写在 Notification 下还是 Message 下?
点击 SDK 的通知栏 用JPushInterface.EXTRA_EXTRA获取的是写在 Notification 下的 extras 信息,没法获取写在 Message 下的 extras。
Message 消息和 Notification 消息 分别有各自的参数,不要混用。
可以推送 Web页面、图片、声音等除普通文本之外更丰富的内容。
两种:信:息流模板推送、URL 富媒体链接推送
信息流模板推送
推送 Web 页面(富文本);
极光官网控制台上有创建富文本页面的功能模块,提供了5种模板;
富文本作为通知推送到客户端;
客户端点击通知,自动展示该富文本页面。
URL 富媒体链接推送推送某个页面的 URL ,点击通知栏消息后跳转到这个 URL 指定的页面。
仅支持 Android ,需要JPush Android SDK 1.8.0 及以上。
只能通过极光推送的控制台发送。
必须将压缩包 res 中的资源放到我们自己的项目的对应文件夹,并按照官方示例 AndroidManifest配置 PushActivity 组件。
4.本地通知
适用于在特定时间发出的通知,如一些Todo和闹钟类的应用,在每周、每月固定时间提醒用户回到应用查看任务
#####几个特点
不依赖于网络,无网也可以触发。
定时时间是自发送时算起,不受中间关机等操作的影响。
本地通知与远程推送的通知是相互独立的,不受 (Android)的限制。
依旧需要 App 应用程序在运行。
本地推送保存在本地的 db 中,时间上的控制也是从 db 里面取。
关机或者杀进程后将收不到本地通知。
进程重启后,会检测 db ,准备设定时间在此之后的本地通知的推送。
本地通知的时间也依赖于每4分50秒的心跳来检测,所以并不能特别精准地刚好到了通知时间你刚好启动了进程,就能收到推送,会有一定偏差。
(转载分享小能手)
07:39:58 UTC
这个感觉比iOS篇更完整的样子,楼主加油,期待你继续分享
(漠北之夜)
09:48:49 UTC
在另一台设备上登录,重设别名以后,如何把这个异地登陆的通知发送给前一台设备通知他下线呢?感觉这个对于这种针对账号的类似订单发送限制好大
09:50:24 UTC
针对账号的其实建议用即时通讯来实现
这个应该是你们自己服务器那边做好设定,检测到这边登录后,发一条消息给前一台设备,用registrationID发在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
如何取出极光推送的通知的内容,我试了好久,找不到怎么取出来,我是想取出所有的消息的内容,保存到本地自定义的消息中心。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你打印下返回的json格式String,如果有值说明是你的取值方法有问题了,试试fastJson或者GSON
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(action)) {
Bundle extras = intent.getExtras();
if (null == extras)
String title = extras.getString(JPushInterface.EXTRA_TITLE);
String message = extras.getString(JPushInterface.EXTRA_MESSAGE);
String extraJson = extras.getString(JPushInterface.EXTRA_EXTRA);
LogUtils.d("Message title : " + title);
LogUtils.d("Message content : " + message);
LogUtils.d("Message extraJson : " + extraJson);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我也遇到了这个问题,是这样取出通知的内容的:String result = bundle.getString(JPushInterface.EXTRA_ALERT);
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:极光推送如何在手机“通知栏”里找到创业机会?_网易科技
极光推送如何在手机“通知栏”里找到创业机会?
用微信扫码二维码
分享至好友和朋友圈
当手机通知栏弹出一条提醒时,也许没有用户在意这条消息是怎么弹出来的。但它却与手机App的活跃率和生命周期息息相关——在被大量Apps占据的手机桌面上,适时的提醒会唤起用户对Apps的记忆。但事实上,国内为开发者提供消息推送服务解决方案的公司至少在5家以上。这其中既包括百度、腾讯这样的网络巨头,又有个推、极光推送这样的创业型公司。最近PingWest采访了极光推送CEO王小导,在同类服务如此繁多的情况下,王小导是如何给极光推送定位的?
对于iOS和Android系统有些了解的用户可能已经听说过,苹果和Google分别为开发者提供了名为APNS(Apple Push Notification Service)和GCM(Google Cloud Message)的消息推送服务,那么为什么App开发者不直接选择苹果或者Google的服务转而使用第三方提供的呢?
原因在于,苹果和Google作为平台型的公司,虽然它们会为服务配备优秀的基础设施,但却不会为开发者提供各种定制化的功能,比如推送效果报表、按条件触发推送等。这自然也就为第三方推送服务留下了可以发挥的空间。
极光推送就既提供云端定制化的推送特性,又提供推送送达、用户激活、停留时间等推送效果报表。从产品类型上看,其服务可以分为两类:通知推送和应用内消息推送。前者可以把信息推送到终端,后者则可以自定义消息静默接收、不打扰用户。
在王小导看来,极光推送围绕“消息推送”做的这一系列功能优化最终的目的只有一个——帮助开发者做“精细化运营”。这也是它们接下来还要上线“极光联盟”的原因。
就像Google、Facebook等开始售卖帮开发者激活用户已安装应用的广告一样。事实上,对于那些躺在手机里的应用来说,可能没有那种方式比弹个通知更容易刷一下“存在感”了。但一个频繁地乱弹通知的应用最终将不可避免的会被用户卸载,所以如何在“弹通知”和“用户需求”之间找到平衡?这就需要工具作为支撑。
极光推送目前已经提供了包括标签、地域、定时在内的多个维度的自定义推送服务。接下来,它们还将提供某个时间段的订阅服务,以及根据地理位置触发的推送服务。所有的这些工作都是为了让开发者推送的消息能更具针对性。
“极光联盟”是一个为开发者准备的换量平台。开发者可以通过极光联盟的平台来交换应用的展示量,而极光联盟并不会收取任何费用。在王小导看来,推出这项功能的目的依然是为了帮助开发者做运营。毕竟线下的换量工作是既费时又费力,而且同类产品往往还很难达成交换协议。
极光推送的服务又分为免费和收费两个版本。这样的定位方式也会为极光推送带来一些问题,比如一些网络社区上的用户就表示在高峰时段偶尔会出现消息延迟的情况。由于极光推送免费版的用户并没有专享的通道,所以使用的人数多了之后自然也就会出现延迟,可极光推送这样的产品又不能失去这些免费用户——由于百度、友盟等的推送服务都是免费的,所以满足免费用户的基本需求是这家创业公司生存的根本。王小导说,解决这个问题的办法是继续对服务器进行扩容。
但是,还有不少的问题摆在面前——无论是选用哪家公司的推送服务,由于系统层面上的原因,第三方的推送都要会受到某种程度上的限制。比如在iOS上,第三方厂商只能帮开发者统计到消息抵达APNS的数据,而从APNS到用户端的情况如何大家都无从知晓。
而在Android上,则要面对是否共享后台服务的问题。如果为每个应用提供独立的后台服务,对于开发者来说自然是能保证推送通知的稳定性,但对于用户来说就要多消耗电力、运存。如果仅提供一个后台服务供所有的应用使用,虽然可以节约电力和运存,但消息推送的及时性可能又要面临挑战。所以这是一个需要妥协的选择。
打开微信,扫一扫
本文来源:PingWest中文网
责任编辑:王晓易_NE0011
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈(JPush极光推送)
(JPush极光推送)
(JPush极光推送)
(JPush极光推送)
(JPush极光推送)
第三方登录:}

我要回帖

更多关于 android 极光推送集成 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信