-
Notifications
You must be signed in to change notification settings - Fork 43
融云RongCloud_IM
cheyiliu edited this page Mar 11, 2015
·
7 revisions
- DemoApplication.java
RongIM.init(this);//sdk要求
RongCloudEvent.init(this);//这里注册了一堆provider
RongIM.setGetUserInfoProvider(this, true);//设置用户信息提供者。
RongIM.setGetFriendsProvider(this);//设置好友信息提供者.
RongIM.setGetGroupInfoProvider(this);//设置群组信息提供者。
RongIM.setConversationBehaviorListener(this);//设置会话界面操作的监听器。
RongIM.setLocationProvider(this);//设置地理位置提供者,不用位置的同学可以注掉此行代码
DemoContext.init(this);
主要创建了demo的群组信息等
- httpRequest = DemoContext.getInstance().getDemoApi().register(email, nickname, password, this);
- 在成功回调中会去启动登录页面,同时传入邮箱和密码
- loginHttpRequest = DemoContext.getInstance().getDemoApi().login(username, password, mDeviceId, this);
- 在成功回调中会去作连接操作,RongIM.connect(user.getToken(), new ConnectCallback() {
- 在链接操作的成功回调中, 注册消息接收监听器 RongCloudEvent.getInstance().setOtherListener();
- 启动群组会话见GroupListActivity.java的onItemClick
RongIMClient.Group group=mGroupListAdapter.getItem(position);
Uri uri = Uri.parse("rong://" + this.getPackageName()).buildUpon()
.appendPath("conversation").appendPath(RongIMClient.ConversationType.GROUP.getName().toLowerCase())
.appendQueryParameter("targetId", group.getId()).appendQueryParameter("title", group.getName()).build();
startActivity(new Intent(Intent.ACTION_VIEW, uri));
- 启动私聊会话
RongIM.getInstance().startPrivateChat(UserInfoActivity.this, userId, title);//user ID
上面启动私聊会话的userId来自, RongCloudEvent.java
- 基于融云1.4.0
- DemoApi提供了demo服务器的ip port信息,登录注册接口
- DemoApplication负责全局的初始化
- DemoContext主要角色是作为内容提供器,提供用户列表,群组列表等(真实的用户信息,群组信息,好友关系要自己搭建后台并实现)。
- RongCloudEvent是相关事件的回调,如消息的接收和发送,接收器的注册等,提取聊天内容从而实现弹幕的关键点。
- UI相关的: 注册RegisterActivity, 登录LoginActivity, 群组列表GroupListActivity等
- SDK提供的会话界面: io.rong.imkit.RongActivity,xxFragment等,见manifest中的注册等
- 自定义layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/aaachecheche" />
<fragment
android:name="io.rong.imkit.fragment.ConversationFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
-
自定义activity,并用上述包装了融云fragment的layout
-
注册activity,记得在demo原来处理这个intent的activity里去掉相应的intent-filter
<category android:name="android.intent.category.DEFAULT" /> <data android:host="io.rong.imkit.demo" android:pathPrefix="/conversation/group" android:scheme="rong" /> </intent-filter>
- 只能快速改改颜色等风格了, 想更多的自定义得花时间
- 参考http://docs.rongcloud.cn/android.html#UI_%E8%87%AA%E5%AE%9A%E4%B9%89
- 这个库只提供基本的通讯能力,UI需全部自己实现
- 核心实现见RongCloudEvent.java,具体见onReceived()方法
- 注册监听是在登录页面的成功回调中, RongCloudEvent.getInstance().setOtherListener(); line 209
Just build something.