您的位置:首页 > 移动开发 > Android开发

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

2015-02-10 13:50 429 查看
上一篇[极光推送Android客户端(一)],我们实现了极光推送在Android客户端推送功能。这篇文章我们进一步介绍下实现推送的效果(/article/2442991.html)

关键点:

自定义通知栏样式设计

有个 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

[code]/**
     *设置通知提示方式 - 基础属性
     */
    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自定义的通知栏属性外。我们可以自定义通知栏的显示界面。来看点击第二个通知栏选项的代码实现

[code]/**
     *设置通知栏样式 - 定义通知栏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,极光推送的知识到此总结完毕。有问题大家可以留言讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: