React Native Demo 介绍
React Native 可以让开发者使用 Javascript 和 React 开发原生 iOS 和 Android 应用,提高开发效率(Learn once, write anywhere)。
React Native Demo 已集成环信 Web IM SDK,并提供即时通讯基本功能,开发者可以直接将该 Demo 集成到您的应用中,立即获得即时通讯的能力。
GitHub 下载地址:https://github.com/easemob/webim-react-native
版本支持
React Native Demo 支持 iOS 9.0 以上版本,以及 Android 4.1 (API 16) 以上版本。
注:所有开发调试环境均基于Mac。
功能
React Native Demo 分为 iOS Demo 和 Android Demo 两部分,已完成的功能如下。
iOS
iOS Demo 已完成功能:
- 登录
- 注册
- 好友
- 列表及筛选
- 好友信息展示
- 黑名单
- 删除好友
- 好友通知
- 添加好友通知展示
- 接受好友请求
- 拒绝好友请求
- 添加好友
- 群组
- 群组列表
- 群组成员列表
- 聊天
- 相机图片消息
- 本地图片消息
- emoji消息
- 普通消息
- 异常状态处理
- 断线退出到登录页
- 重复登录退出到登录页
Android
Android Demo 已完成功能:
- 登录
- 注册
- 好友
- 列表及筛选
- 好友信息展示
- 黑名单
- 删除好友
- 好友通知
- 添加好友通知展示
- 接受好友请求
- 拒绝好友请求
- 添加好友
- 群组
- 群组列表
- 群组成员列表
- 聊天
- 相机图片消息
- 本地图片消息
- emoji消息
- 普通消息
- 异常状态处理
- 断线退出到登录页
- 重复登录退出到登录页
目录结构
App 的目录结构如下:
- Containers: 容器 | 页面 | 路由
- App.js 总入口
- Redux/ 初始化
- I18n/ 初始化
- Config/index.js 系统初始配置
- RootContainer.js 根容器
- Navigation/NavigationRouter.js 初始化路由
- /Config/ReduxPersist 持久化初始化
- Components 常用组件
- I18n 多语言支持
- Images 图片资源
- Lib WebIM初始化
- Navigation: 路由相关
- Redux: actions / reducers
- Sdk: webim-easemobo SDK
Redux State
{
// ui相关
ui: [
// ui通用:比如loading
common: {
fetching:false
},
login: {
username: '',
password: '',
isSigned: false,
},
register: { },
contactInfo: { },
],
im: [],
// 数据实体
entities: {
roster: {
byName: {
{
jid, name, subscription, groups?
}
},
names: ['lwz2'...],
// 好友列表在此,因为好友列表来源于roster,息息相关
friends: [],
},
// 订阅通知
subscribe: {
byFrom: {}
},
room: {},
group: {
byId: {},
names: []
},
members: {
byName: [],
byGroupId: []
}
blacklist: {},
message: {
byId: {}
chat: {
[chatId]: [messageId1, messageId2]
},
groupChat: {
[chatId]: {}
},
}
}
}
上一章节:Web IM SDK集成
下一页:iOS APP 集成