位置 | 定制点 | 定制方式 |
---|---|---|
顶部标题栏 | 整个标题栏(支持隐藏) | 实现接口 |
消息气泡 | 文本消息和语音消息 | 实现接口 |
消息中URL | URL点击事件 | 实现接口 |
底部消息栏“+” | +”内增加选项 | 实现接口 |
自定义消息 | 展示、点击和长按事件 | 实现接口 |
地理位置消息 | 消息展示、点击和长按事件 | 实现接口 |
语音消息播放 | 使用听筒或者扬声器模式播放语音消息 | 实现接口 |
自定义消息展示 | 不包含头像的自定义消息展示 | 实现接口 |
背景 | 背景颜色或图片 | 修改资源文件 |
消息字体 | 文字大小,颜色 | 修改资源文件 |
位置 | 定制点 | 定制方式 |
---|---|---|
顶部标题栏 | 整个标题栏(支持隐藏) | 实现接口 |
自定义会话节点 | 展示、点击和长按事件 | 实现接口 |
会话点击事件 | 点击会话跳转intent定制 | 实现接口 |
背景 | 背景颜色或图片 | 修改资源文件 |
字体样式 | 文字大小,颜色 | 修改资源文件 |
位置 | 定制点 | 定制方式 |
---|---|---|
通知栏消息提醒 | 设置是否弹出通知消息,弹出通知栏消息的情况下是否响铃,是否震动提醒,可以针对单个会话进行消息提醒的设置(免打忧) | 实现接口 |
OpenIMSDK提供了丰富的自定义能力,开发者只要继承SDK的自定义相关的类,然后Override相关的方法即可实现自定义功能。 第一步,继承自定义类,比如IMChattingPageOperateion,IMChattingPageUI,然后Override相关的方法(自定义功能)。 第二步,将自定义类向SDK注册,调用AdviceBinder.bindAdvice方法,**注意bindAdvice要在ApplicationOncreate中调用**。 以上两步即可完成自定义的功能,开发者自定义的类将由SDK在需要时自动创建,并不需要开发者去创建(实例化)。刷注册量
比如现在要隐藏最近会话列表的标题栏
第一步:
//继承IMConversationListUI,同时提供构造方法public class ConversationListUICustomSample extends IMConversationListUI {
public ConversationListUICustomSample(Pointcut pointcut) {
super(pointcut);
}
//不显示标题栏
@Override
public boolean needHideTitleView(Fragment fragment) {
return true;
}
}
当然IMConversationListUI有其它更多的方法可以Override,具体可以查看我们的demo
第二步: 在AppOncreate中注册自定义类,第一个参数表明自定义类型,第二个参数是自定义类的class
AdviceBinder.bindAdvice(PointCutEnum.CONVERSATION_FRAGMENT_UI_POINTCUT, ConversationListUICustomSample.class);
通知栏支持开发者设置应用名称,图标和点击通知栏消息跳转intent的设置,此设置请在发起登录之前完成
mIMkit.setEnableNotification(true);//开启通知栏提示mIMkit.setAppName("我的OpenIM");//通知栏显示的名称
mIMkit.setResId(R.drawable.aliwx_notification_bg);//开发者可以换成自定义的Icon
Intent intent = imKit.getConversationActivityIntent(); //开发者可以使用openIM提供的intent也可以使用自定义的intent
imKit.setNotificationIntent(intent); //通知栏点击跳转,同时也支持针对单个会话的消息提醒与否的设置(免打扰) 刷注册
具体请参考工程NotificationInitSampleHelper
//设置消息的聊天气泡背景处理器,可以自定义设置文本以及图片消息的背景图,详细参见demo中的 ChattingUICustomSample 类//第一步:新增类 继承IMChattingPageUI
public class ChattingCustomAdviceSample extends IMChattingPageUI{
//设置左边文本消息气泡背景图,需要.9图
@Override
public int getLeftImageMsgBackgroundResId() {
return R.drawable.aliwx_comment_l_green_bg;
}
@Override
public int getLeftTextMsgBackgroundResId() {
return R.drawable.aliwx_comment_l_green_bg;
}
@Override
public int getRightImageMsgBackgroundResId() {
return R.drawable.aliwx_comment_r_orange_bg;
}
@Override
public int getRightTextMsgBackgroundResId() {
return R.drawable.aliwx_comment_r_orange_bg;
}
}
//第二步:在Applicatoin类里将这个自定义接口绑定到单聊界面,加入以下代码(对于单聊界面的所有自定义UI定制只需要加一次)
AdviceBinder.bindAdvice(PointCutEnum.CHATTING_FRAGMENT_UI_POINTCUT,ChattingCustomAdviceSample.class); 友盟网
此功能可实现开发者定制自己的标题。 详细参见demo中的 ChattingUICustomSample类 实现方法:
//第一步:新增类 继承IMChattingPageUI,返回自定义的Viewpublic class ChattingCustomAdviceSample extends IMChattingPageUI
public View getCustomTitleView(final Fragment fragment,final Context context, LayoutInflater inflater,YWConversation conversation) {
View view = inflater.inflate(R.layout.demo_custom_chatting_title, null);
return view;
}
//第二步:在Applicatoin类里将这个自定义接口绑定到单聊界面,加入以下代码(对于单聊界面的所有自定义UI定制只需要加一次)
AdviceBinder.bindAdvice(PointCutEnum.CHATTING_FRAGMENT_UI_POINTCUT,ChattingCustomAdviceSample.class);
此功能用于开发者在最近联系人列表加入额外的会话item,详见demo ConversationListUICustomSample 类 及CustomConversationHelper 类
//第一步:新增类,继承IMConversationListUIpublic class ConversationListUICustomSample extends IMConversationListUI
//第二步:在Applicatoin类里将这个自定义接口绑定到最联系人界面,加入以下代码(对于最近联系人界面的所有自定义UI定制只需要加一次)
AdviceBinder.bindAdvice(PointCutEnum.CHATTING_FRAGMENT_UI_POINTCUT, ConversationListUICustomSample.class);
//第三步,以上两步主要为了显示,第三步是需要在打开列表界面前 插入一个自定义会话对象
YWCustomConversationUpdateModel cu = new YWCustomConversationUpdateModel();
cu.setIdentity(conversationID);
cu.setContent(content);
cu.setLastestTime(new Date().getTime());
YWIMKit imKit = LoginSampleHelper.getInstance().getIMKit();
IYWConversationService conversationService = imKit.getConversationService();
conversationService.updateOrCreateCustomConversation(cu);
此功能用于实现在最近联系人列表定制标题,详见 ConversationListUICustomSample 类
//第一步:新增类 继承IMConversationListUI,返回自定义的Viewpublic class ConversationListUICustomSample extends IMConversationListUI {
public View getCustomConversationListTitle(final Fragment fragment,
final Context context, LayoutInflater inflater) {
RelativeLayout customView = (RelativeLayout) inflater
.inflate(R.layout.demo_custom_conversation_title_bar, null);
return customView;
}
//第二步:在Applicatoin类里将这个自定义接口绑定到最联系人界面,加入以下代码(对于最近联系人界面的所有自定义UI定制只需要加一次)
AdviceBinder.bindAdvice(PointCutEnum.CONVERSATION_FRAGMENT_POINTCUT, ConversationListCustomAdviceSample.class);
开发者可以替换整个聊天窗口的标题栏。 具体参考demo工程ChattingUICustomSample
开发者可以在最近联系人列表增加自定义的节点。 具体参考demo工程ConversationListUICustomSample
安智宝是主打效果的安卓应用推广平台。通过安智宝,用户可以通过自助方式 进行应用推广。作为效果性的推广平台,安智宝利用云技术智能的进行渠道匹 配,对渠道的高效利用,节约用户的每一分钱。用户可以精确的控制应用投放 每天的投放量、渠道质量(留存率等),做到覆盖广、活跃度高、控制精准。
Copyright © 2016 - 2020 anzhibao.com . All Right Reserved.
安智宝 版权所有