写在前面,因为公司做的项目需要聊天功能,所以在网上找了下方案后,果断选择了融云,因为免费,有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);}}
- 基于第三方融云的即时通讯--转载请注明出处
- 青季酒店
- 全球十大金融中心排行,伦敦纽约居首,上海香港新加坡位次交错 上海金融世界之最
- 衡阳农家乐
- 被巴菲特自己称为“金融灾难”的一笔投资,“好骑师”也难驾驭“坏生意”…… 金融类世界吉尼斯记录
- 写字楼融资,公司建设办公大楼如何融资
- AIGC明星独角兽爆雷!7亿融资烧大半,拖欠员工工资,创始人被扒得千疮百孔...
- 内源融资,什么是内源性融资
- 莫泰268
- 索尼大楼