极光推送使用实例(三) Android客户端

来源:互联网 发布:软件开发逻辑测试 编辑:程序博客网 时间:2024/04/30 04:56

上一篇[极光推送Android客户端(一)],我们实现了极光推送在Android客户端推送功能。这篇文章我们进一步介绍下实现推送的效果(http://blog.csdn.net/u014733374/article/details/43604643)

关键点:
自定义通知栏样式设计
有个 PushNotificationBuilder 概念,开发者使用 setPushNotificationBuilder 方法为某种类型的 PushNotificationBuilder 指定编号;
setPushNotificationBuilder 可以在 JPushInterface.init() 之后任何地方调用,可以是开发者应用的逻辑来触发调用,或者初始化时调用。
只需要设置一次,JPush SDK 会记住这个设置。在下次收到推送通知时,就根据通知里指定的编号来找到 PushNotificationBuilder 来展现、执行。

来看下面这张图片
这里写图片描述

我们要想实现一些自己想要的效果,比如设置通知的图片、音乐以及推送内容的页面展示形式。

看过上一篇的应该都已经了解,在高级功能设置里有一个选项是设置通知栏的,我们一起来看一下源码,其实很简单。
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_tag:
setTag();
break;
case R.id.bt_alias:
setAlias();
break;
case R.id.setStyle1:
setStyleBasic();
break;
case R.id.setStyle2:
setStyleCustom();
break;
case R.id.bu_setTime:
Intent intent = new Intent(PushSetActivity.this, SettingActivity.class);
startActivity(intent);
break;
}

ok,来看setStyleBasic,这里我设置了自己的图标:R.drawable.t_2

/**     *设置通知提示方式 - 基础属性     */    private void setStyleBasic(){        BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder(PushSetActivity.this);        builder.statusBarDrawable = R.drawable.t_2;        builder.notificationFlags = Notification.FLAG_AUTO_CANCEL;  //设置为点击后自动消失        builder.notificationDefaults = Notification.DEFAULT_SOUND;  //设置为铃声( Notification.DEFAULT_SOUND)或者震动( Notification.DEFAULT_VIBRATE)          JPushInterface.setPushNotificationBuilder(1, builder);        Toast.makeText(PushSetActivity.this, "Basic Builder - 1", Toast.LENGTH_SHORT).show();    }

除了极光推送sdk自定义的通知栏属性外。我们可以自定义通知栏的显示界面。来看点击第二个通知栏选项的代码实现

/**     *设置通知栏样式 - 定义通知栏Layout     */    private void setStyleCustom(){        CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(PushSetActivity.this,R.layout.customer_notitfication_layout,R.id.icon, R.id.title, R.id.text);        builder.layoutIconDrawable = R.drawable.ic_launcher;        builder.developerArg0 = "developerArg2";        JPushInterface.setPushNotificationBuilder(2, builder);        Toast.makeText(PushSetActivity.this,"Custom Builder - 2", Toast.LENGTH_SHORT).show();    }

这里的R.layout.customer_notitfication_layout就是自定义一个layout。源码也很简单。个人认为极光sdk里的样式就可以满足大部分项目需求了。要自定义也可以,但是不需要太复杂。

ok,极光推送的知识到此总结完毕。有问题大家可以留言讨论。

1 0