====== 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]: {} }, } } } ---- 上一章节:[[im:400webimintegration:10webimintro|Web IM SDK集成]] 下一页:[[im:react-native:ios-app|iOS APP 集成]]