融云集成单聊与会话列表

写在前面,因为公司做的项目需要聊天功能,所以在网上找了下方案后,果断选择了融云,因为免费,有100个测试位 。
本来没想着写这个文章,无奈融云的文档写的相(fei)当(chang)简(la)单(ji),在问客服问题,回复太慢了,并且没有解决问题 。
所以记录下来,防止大家继续踩坑 。
文章目录4.会话5.启动会话和会话列表6.用户信息7.退出融云8.通知9.服务器连接状态监听10.发送信息监听11.会话列表刷新头像12.会话列表界面操作监听13.会话界面操作监听14.会话中历史消息头像更新15.问题处理
1.集成步骤2.集成SDK3.会话列表
按融云的介绍,会话列表有两种实现方式,一种是静态注册,一种是动态加载 。
1. 静态注册

public class ConversationListActivity extends FragmentActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.conversationlist);}}

在这里需要注意的是host一定要设置成自己的 id,如果没有特别设置,id就是自己的包名 。
但是,我们如果把会话列表放在中如何弄呢?一般App都是用+来进行多界面显示,所以这就到了动态加载的时候了 。
2. 动态加载

ConversationListFragment conversationListFragment = new ConversationListFragment();Uri uri = Uri.parse("rong://" + getActivity().getApplicationInfo().packageName).buildUpon().appendPath("conversationlist").appendQueryParameter(Conversation.ConversationType.PRIVATE.getName(), "false") //设置私聊会话,该会话聚合显示.appendQueryParameter(Conversation.ConversationType.SYSTEM.getName(), "true")//设置系统会话,该会话非聚合显示.build();
conversationListFragment.setUri(uri);
FragmentManager fragmentManager = getChildFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();transaction.add(R.id.rong_container,conversationListFragment);transaction.commit();
4.会话
会话跟会话列表是完全一致的,添加方式完全一致,这里就不需要考虑加载在中了,因为基本上每个会话都是单独的一个界面 。

public class ConversationActivity extends FragmentActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.conversation);}}