【友盟+】开发者社区

如何通过builder_id指定通知栏样式?

友盟PUSH 发表于 2015-6-30 11:41:19 | |阅读模式

友盟PUSH
友盟PUSH 发表于 2015-6-30 11:41:19 | 显示全部楼层 |阅读模式
本帖最后由 友盟PUSH 于 2015-6-30 11:57 编辑

Android的集成文档有一个章节提及可以在SDK层面上重写通知栏样式, 具体代码如下:
[AppleScript] 纯文本查看 复制代码
1.6.3   自定义通知栏样式
在消息推送的SDK里,有一个类UmengMessageHandler,该类负责处理消息,包括通知消息和自定义消息。其中,有一个成员函数:getNotification,若SDK默认的消息展示样式不符合开发者的需求,可通过覆盖该方法来自定义通知栏展示样式。
下面是demo里的示例代码:

@Override
public Notification getNotification(Context context,
        UMessage msg) {
    switch (msg.builder_id) {
    case 1:
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        RemoteViews myNotificationView = new RemoteViews(context.getPackageName(), R.layout.notification_view);
        myNotificationView.setTextViewText(R.id.notification_title, msg.title);
        myNotificationView.setTextViewText(R.id.notification_text, msg.text);
        myNotificationView.setImageViewBitmap(R.id.notification_large_icon, getLargeIcon(context, msg));
        myNotificationView.setImageViewResource(R.id.notification_small_icon, getSmallIconId(context, msg));
        builder.setContent(myNotificationView);
        Notification mNotification = builder.build();
        //由于Android v4包的bug,在2.3及以下系统,Builder创建出来的Notification,并没有设置RemoteView,故需要添加此代码
        mNotification.contentView = myNotificationView;
        return mNotification;
    default:
        //默认为0,若填写的builder_id并不存在,也使用默认。
        return super.getNotification(context, msg);
    }

其中,msg.builder_id是服务器下发的消息字段,用来指定通知消息的样式。
开发者可在Umeng Push网站上指定,默认值为0。

上述是在代码层面重写了通知栏样式,具体是通过一个builder_id来做判断的,如果是自己定义的builder_id(代码中是1),那么在通知到达的时候,就会展示出自定义通知栏的效果。 那么具体在推送消息的时候,该如何通过builder_id来发消息呢? 小编在这里告诉大家这个功能如何在我们网站上使用(如果要通过API接口发送的话,请联系msg-support@umeng.com来咨询)。

网站上,在“新建消息”页面的底部,有一个“高级功能”,高级功能里面有一项内容叫做“通知栏样式编号”,开发者发送消息的时候,在这里指定具体的builder_id编号就可以啦,非常简单:

通知栏样式编号

通知栏样式编号

欢迎大家关注我们的新浪官方微博友盟推送来获取关于消息推送的最新动态内容。






上一篇:提示开发证书无效
下一篇:应用推送页面打不开

您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

友盟启动初始化报错
版本更新后启动一直报这个错误
微信分享音乐类型失败
近期微信官方对音乐类型的分享增加了白名单限制,会导致不在白名单内的APP分享音乐类型失败 出现这种情
运行报错java.lang.NoClassDefFoundError:有人遇到过吗?
在项目中集成友盟分享功能,只加了微信、qq、微博,都是精简版。按照友盟官方的方法操作的。 签名用的友盟

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表