通知栏提醒

位置 定制点 定制方式
通知栏 是否弹通知栏提醒 实现接口
通知栏ticker 自定义通知栏ticker 实现接口
通知栏图标 自定义通知栏图标 实现接口
通知栏title 自定义通知栏title 实现接口
通知栏提示音 自定义通知栏提示音 实现接口
通知栏提示文案 自定义收到消息时通知栏的提示文案 实现接口
通知栏跳转 自定义点击通知栏的跳转Intent 实现接口
消息提醒 弹出通知栏消息的情况下是否响铃,是否震动 (支持对单个会话进行消息提醒的设置) 实现接口

IMNotification实现了对通知栏提醒的定制,以下将对通知栏提醒定制的各个功能进行介绍,具体使用方式请参考demo NotificationInitSampleHelper.java

注册方法

//其中yourclass是继承自IMNotification的自定义类
AdviceBinder.bindAdvice(PointCutEnum.NOTIFICATION_POINTCUT, yourclass_.class);

如果对注册或者使得自定义不清楚的,请看这里

以下方法如果有需要,可以选择性地Override。

设置是否开启通知栏提醒

//设置是否开启通知提醒,参数设置 true: 开启通知栏提醒,false  :关闭通知栏提醒
imKit.setEnableNotification(true);

设置通知栏ticker

/**
 * 自定义通知栏ticker
 * @param conversation
 *          收到消息的会话
 * @param message
 *          收到的消息
 * @param totalUnReadCount
 *          会话中消息未读数
 * @return
 *          如果返回null,则使用SDK默认的ticker
 */
@Override
public String getTicker(YWConversation conversation, YWMessage message, int totalUnReadCount) {
    return "123456";
}

自定义通知栏图标

/**
 * 获取通知栏图标Icon
 * @return 资源id
 */
@Override
public int getNotificationIconResID() {
    return R.drawable.aliwx_notification_bg;
}

自定义通知栏title

/**
 * 获取通知栏显示Title
 * @return title
 */
@Override
public String getAppName() {
    return "我的OpenIM";
}

自定义通知栏提示音

/**
 * 返回自定义提示音资源Id
 * @return  提示音资源Id,返回0则使用SDK默认的提示音
 */
@Override
public int getNotificationSoundResId() {
    return 0;
}

自定义通知栏提示文案

/**
 * 收到消息时,自定义消息通知栏的提示文案
 * @param conversation
 * @param message
 * @param totalUnReadCount
 * @return,如果返回空,则使SDK默认的文案格式
 */
@Override
public String getNotificationTips(YWConversation conversation, YWMessage message, int totalUnReadCount) {
    return "自定义文案,未读消息数为:" + totalUnReadCount;
}

自定义通知栏点击跳转Intent

/**
 * 收到消息时的自定义通知栏点击Intent
 * @param conversation
 *          收到消息的会话
 * @param message
 *          收到的消息
 * @param totalUnReadCount
 *          会话中消息未读数
 * @return
 *          如果返回null,则使用全局自定义Intent
 */
public Intent getCustomNotificationIntent(YWConversation conversation, YWMessage message, int totalUnReadCount) {
    //以下仅为示例代码,Intent需要开发者根据不同目的自己实现
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    intent.setClass(DemoApplication.getContext(), FragmentTabs.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    return intent;
}

自定义通知栏消息提醒设置

/**
 * 是否开启免打扰模式,若开启免打扰模式则收到新消息时不发送通知栏提醒,只在会话列表页面显示未读数
 * 若开启免打扰模式,则声音提醒和震动提醒会失效,即收到消息时不会有震动和提示音
 * @param conversation 会话id
 * @param message 收到的消息
 * @return true:开启, false:不开启
 */
@Override
public boolean needQuiet(YWConversation conversation, YWMessage message) {
    if (conversation.getConversationType() == YWConversationType.Tribe){
        return true;
    }
}

/**
 * 收到通知栏消息时是否震动提醒,该设置在没有开启免打扰模式的情况下才有效
 * @param conversation 会话id
 * @param message 收到的消息
 * @return true:震动,false:不震动
 */
@Override
public boolean needVibrator(YWConversation conversation, YWMessage message) {
    if (conversation.getConversationType() == YWConversationType.Tribe){
        return false;
    }
}

/**
 * 收到通知栏消息时是否有声音提醒,该设置在没有开启免打扰模式的情况下才有效
 * @param conversation 会话id
 * @param message 收到的消息
 * @return true:有提示音,false:没有提示音
 */
@Override
public boolean needSound(YWConversation conversation, YWMessage message) {
    if (conversation.getConversationType() == YWConversationType.Tribe){
        return false;
    }
}

FAQ

关于此文档暂时还没有FAQ
返回
顶部