# PaoMo_Chat
**Repository Path**: JJet/PaoMo_Chat
## Basic Information
- **Project Name**: PaoMo_Chat
- **Description**: 高仿微信界面即时聊天IM工具_还集成了新浪微博的首页功能——大学毕业设计项目
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2015-06-16
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#PaoMo_Chat
效果实现如下:



## 应用到的一些技术要点:
* 本项目使用XMPP Framework这一框架, 采用xmpp 通讯协议来完成应用软件的即时通讯功能模块;
* OAuth授权 (请求微博数据), 授权 主要分三个步骤, 获取未授权的Request Token 、 获取用户授权的Request Token 、 用授权的Request Token换取Access Token ( “令牌” ) ;
* Openfire服务器和MySql数据库 配置和搭建;
* 由于XMPPStream是基于myJID建立的长连接 (XMPP的特点是所有的请求都是通过代理的方式实现的),本项目特地写了一个xmpp工具类,一切关于XMPP的操作都在这里面实现,并在 didFinishLaunchingWithOptions中调用:[[XMPPTool sharedXMPPTool] setupStream];
* 聊天页面的搭建主要是使用AutoLayout自动布局,使用自动布局设置文本输入框针对底部的三个约束以及聊天文字的自适应高度 ;
* 使用MJPhotoBrowser第三方框架实现对聊天消息图片的浏览和保存,使用GIFImageView类实现对聊天中GIF图片的显示;
* 本项目还实现了对聊天语音录制和发送,以及用户位置(百度地图)的发送 ;
* 自定义UITableViewCell,根据数据自定义cell的高度(自适应高度)和控件的位置;
* 整个项目遵循MVC开发模式,项目结构清晰,代码整齐,逻辑清晰;
* 使用正则表达式截取文中想要的字符串进行表情替换或者高亮显示,以及输入框的条件判断;
* 自定义聊天键盘(emoji、gif、更多)(keyBoard)、自定义聊天输入框、自定义tabbar、自定义UIScrollView等视图;
* 搭建Java Web服务器,实现文件的上下传和用户数据的请求;
* 使用MJExtension第三方框架实现字典数组转模型数组,字典转模型等,以及json数据的解析,方便对数据的处理;
* 部分UI固定的页面使用UIStoryboard实现,减少代码量和适配工作;