1919 <ImageItem src =" /images/uikit/chatuikit/android/main_contact_list.png " title =" 通讯录 " />
2020</ImageGallery >
2121
22- ## 快速跑通 Demo
22+ ## 快速跑通 Demo 源码
2323
2424### 开发环境要求
2525
3131
3232### 跑通步骤
3333
34- 1 . [ 创建应用] ( /product/enable_and_configure_IM.html ) 。
34+ 1 . [ 创建应用] ( /product/enable_and_configure_IM.html#创建应用 ) 。
35352 . [ 获取应用的 App Key] ( /product/enable_and_configure_IM.html#获取环信即时通讯-im-的信息 ) 。
36363 . [ 创建用户] ( /product/enable_and_configure_IM.html#创建-im-用户 ) 。
37374 . [ 下载即时通讯 IM Demo 项目源码] ( https://github.com/easemob/easemob-demo-android ) 。
@@ -49,14 +49,63 @@ App Server 为 Demo 提供以下功能:
4949- 通过手机号获取验证码。
5050- 通过手机号和验证码返回环信用户 ID 和环信用户 Token。
5151- 上传头像并返回地址。
52- - 根据用户的信息生成 [ EaseCallKit] ( https://doc.easemob.com/document/android/ easecallkit.html) 登录所需的 Token。
52+ - 根据用户的信息生成 [ EaseCallKit] ( easecallkit.html ) 登录所需的 Token。
5353- 获取音视频通话时环信用户 ID 和 Agora UID 的映射关系。
5454
5555你通过以下步骤部署 App Server:
5656
57571 . 部署 App Server。详见 [ 服务端源码] ( https://github.com/easemob/easemob-im-app-server/tree/dev-demo ) 。
58- 2 . 在 Demo 工程根目录下 ` local.properties ` 文件中,填写 App Server 的域名或 IP 地址,格式为 ` APP_SERVER_DOMAIN = 服务器域名或ip地址 ` 。
58+ 2 . 在 Demo 工程根目录下 ` local.properties ` 文件中,开发者在这里应该根据自己部署的 App Server 替换填写以下配置属性:
59+
60+ ``` gradle
61+ # App Server 服务器域名或 IP 地址
62+ APP_SERVER_DOMAIN=xxx.xxx.com
63+
64+ # App Server 用户管理 URL 路径
65+ APP_BASE_USER=/inside/app/user
66+
67+ # App Server 群组管理 URL 路径
68+ APP_BASE_GROUP=/inside/app/group
69+
70+ # App Server 登录管理 URL 路径
71+ APP_SERVER_LOGIN=/login/V2
72+
73+ # App Server 上传用户图像 URL 路径
74+ APP_UPLOAD_AVATAR=/avatar/upload
75+
76+ # App Server 群图像 URL 路径
77+ APP_GROUP_AVATAR=/avatarurl
78+
79+ # 从服务端拉取 Callkit 登录使用的 RTC Token URL 路径
80+ APP_RTC_TOKEN_URL=/inside/token/rtc/channel
81+
82+ # RTC APP ID (easecallkit.html)
83+ RTC_APPID=xxxxxxxxxxxxxxxxxxxxxxx
84+
85+ # 获取 RTC UID 和环信用户名映射关系的 URL 路径
86+ APP_RTC_CHANNEL_MAPPER_URL=/inside/agora/channel/mapper
87+
88+ # 获取验证码时与 App Server 加密参数所用的 AES 密钥
89+ SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxx
90+ ```
91+
59923 . 在 Demo 工程根目录下 ` local.properties ` 文件中,填入 ` LOGIN_WITH_APPSERVER = true ` ,即通知 Demo 工程需要启用 App Server,体验完整功能。
93+ 4 . (可选) 离线推送相关配置。
94+
95+ 从各厂商申请对应推送相关 Appkey/AppSecret/AppID 后,填入 Demo 工程根目录下 ` local.properties ` 文件中,可使用各厂商推送功能。
96+
97+ ``` gradle
98+ MEIZU_PUSH_APPKEY=xxxxxxxxxxxxxxxxxxxxxxx
99+ MEIZU_PUSH_APPID=xxxxxxxxxxxxxxxxxxxxxxx
100+ OPPO_PUSH_APPKEY=xxxxxxxxxxxxxxxxxxxxxxx
101+ OPPO_PUSH_APPSECRET=xxxxxxxxxxxxxxxxxxxxxxx
102+ VIVO_PUSH_APPID=xxxxxxxxxxxxxxxxxxxxxxx
103+ VIVO_PUSH_APPKEY=xxxxxxxxxxxxxxxxxxxxxxx
104+ MI_PUSH_APPKEY=xxxxxxxxxxxxxxxxxxxxxxx
105+ MI_PUSH_APPID=xxxxxxxxxxxxxxxxxxxxxxx
106+ FCM_SENDERID=xxxxxxxxxxxxxxxxxxxxxxx
107+ HONOR_PUSH_APPID=xxxxxxxxxxxxxxxxxxxxxxx
108+ ```
60109
61110** 服务端中的 App Key 要跟客户端的 App Key 保持一致。**
62111
@@ -137,23 +186,23 @@ App Server 为 Demo 提供以下功能:
137186```
138187
139188
140- ### 主要模块介绍
189+ ### 核心类
141190
142191| 模块 | 描述 |
143192| :------------------- | :----- |
144- | 聊天模块 | 展示如何依赖 EaseIMKit 实现聊天列表,如何扩展消息类型及如何增加扩展菜单等的逻辑。 |
145- | 会话列表模块 | 展示如何依赖 EaseIMKit 实现会话列表的逻辑及实现系统消息的具体逻辑。 |
146- | 联系人模块 | 展示如何依赖 EaseIMKit 实现联系人列表的逻辑。 |
147- | 聊天设置模块 | 展示 IM SDK 提供的对于群聊成员及群组属性的操作。 |
148- | 设置模块 | 展示 IM SDK 对于新消息的设置及消息免打扰,群组等通用设置。 |
149- | 开发者模块 | 展示 IM SDK 提供的一些常规的开发者可以设置的功能。 |
193+ | DemoHelper | 环信(Demo)全局帮助类,主要功能为初始化 IM SDK,初始化 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 、[ EaseCallKit] ( easecallkit.html ) 相关及注册对话类型等。 |
194+ | ConversationListFragment | 继承自 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 中的 ` ChatUIKitConversationListFragment ` ,展示当前用户的所有会话,包含单聊和群组聊天(不包括聊天室),并且提供会话搜索、删除、置顶和免打扰功能 |
195+ | ChatActivity 及 ChatFragment | ` ChatActivity ` 继承自 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 中的 ` UIKitChatActivity ` ,主要进行了权限的请求,比如相机权限,语音权限等。` ChatFragment ` 继承自 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 中的 ` UIKitChatFragment ` ,该页面提供如下功能:<br /> - 发送和接收消息, 包括文本、表情、图片、语音、视频、文件和名片消息。<br /> - 对消息进行复制、引用、撤回、删除、编辑、重新发送和审核。<br /> - 清除本地消息。 |
196+ | ChatContactListFragment | 继承自 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 中的 ` ChatUIKitContactsListFragment ` ,用于展示通讯录列表,包括联系人搜索,添加联系人,好友申请列表入口,群组列表入口,联系人列表。 |
197+ | ChatGroupDetailActivity | 继承自 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 中的 ` ChatUIKitGroupDetailActivity ` ,实现了如下功能:群成员管理,群属性管理,上传共享文件,设置消息免打扰,解散或者退出群组等。 |
150198
151- ### 主要类介绍
199+ ### 核心模块
152200
153201| 模块 | 描述 |
154202| :------------------- | :----- |
155- | ` DemoHelper ` | 环信(EaseIM)全局帮助类,主要功能为初始化 IM SDK,初始化 EaseIMKit 相关及注册对话类型等。 |
156- | ` ConversationListFragment ` | 继承自 EaseIMKit 中的 ` ChatUIKitConversationListFragment ` ,展示扩展条目长按事件,在列表前端添加布局及条目点击事件实现等 |
157- | ` ChatActivity及ChatFragment ` | ChatFragment 继承自 EaseIMKit 中的 ` UIKitChatFragment ` ,展示了扩展条目长按事件,预置条目长按菜单及对重写部分长按事件功能,展示了如何重置及添加更多扩展功能,并展示了实现了头像点击事件及正在输入等事件的相应。 |
158- | ` ChatContactListFragment ` | 继承自 EaseIMKit 中的 ` ChatUIKitContactsListFragment ` ,展示了添加头布局,添加条目长按功能及实现条目点击事件等 |
159- | ` ChatGroupDetailActivity ` | 实现了如下功能:添加群成员,修改群公告及群介绍,上传共享文件,进行群组管理,设置消息免打扰及解散或者退出群组等。 |
203+ | 聊天模块 | 展示如何依赖 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 实现聊天页面,如何发送消息、消息管理、扩展消息类型及如何增加扩展菜单等的逻辑。 |
204+ | 会话列表模块 | 展示如何依赖 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 实现会话列表的逻辑及实现系统消息的具体逻辑。 |
205+ | 联系人模块 | 展示如何依赖 [ ChatUIKit] ( /uikit/chatuikit/android/chatuikit_overview.html ) 实现联系人列表的逻辑。 |
206+ | 我的模块 | 账户管理、用户状态管理及 App 的一些功能样式设置。 |
207+ | 开发者模块 | 展示 IM SDK 提供的一些常规的开发者可以设置的功能。 |
208+
0 commit comments