iOS学习—环信
学习笔记666
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Socket的简单认识
Socket又称"套接字”网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。应用程序通常通过"套接字"向网络发出请求或者应答网络请求网络通信的要素网络上的请求就是通过Socket来建立连接然后互相通信IP地址(网络上主机设备的唯一标识)端口号(定位程序)用于标示进程的逻辑地址,不同进程的标示有效端口:0~655转载 2016-02-11 22:28:28 · 462 阅读 · 0 评论 -
04环信聊天界面 - 底部工具栏布局
1.界面布局2.演示效果3.聊天控制器代码如下://// ChatViewController.m#import "ChatViewController.h"@interface ChatViewController ()/** * inputToolbar(输入工具栏)底部的约束 */@property (weak, nonatom原创 2016-02-13 21:14:34 · 2117 阅读 · 0 评论 -
04环信聊天界面 - 接收方cell的布局
1.拖一个UITabelViewCell到聊天界面的tableView里。cell里需要添加3个控件,1个UIImageView作为头像,一个UILabel(显示聊天文字),另一个imageView(作为label的背景)。控件关系:背景的imageView其实就是聊天气泡,文字在气泡内,文字和气泡有边距。头像尺寸35x35, UILabel设置Lines属性为0就可以换行,并且要原创 2016-02-14 21:10:20 · 2560 阅读 · 1 评论 -
04环信聊天界面 - 计算cell的高度
我们这计算cell的高度,主要是内部UIlabel的高度。如果label上文字已设置,就可以确定label的高度。所以,我们在cell里提供一个方法://// ChatCell.m#import "ChatCell.h"@implementation ChatCell- (CGFloat)cellHeight{ // 1.重新布局子控件(后label的高度已经确原创 2016-02-14 22:15:36 · 1423 阅读 · 0 评论 -
04环信聊天界面 - 发送聊天消息
聊天界面布局完成,下面我们来完成发送消息功能。连线设置textView的为聊天控制器。然后监听textView文字的改变,如果用户有输入回车符,表示“发送”消息#pragma mark - UITextViewDelegate- (void)textViewDidChange:(UITextView *)textView{ //监听用户是否点击了键盘的"Send"按钮 -- 判原创 2016-02-16 19:20:05 · 5677 阅读 · 1 评论 -
04环信聊天界面 - 加载本地聊天记录
1在聊天控制器.加载聊天记录,并添加到数据源:/** * 加载本地的聊天记录 */- (void)loadLocalChatRecords{ EMConversation *conversation = [[EaseMob sharedInstance].chatManager conversationForChatter:self.buddy.username conversat原创 2016-02-16 20:08:55 · 6356 阅读 · 0 评论 -
04环信聊天界面 - 监听消息回复
1.在聊天控制器的viewDidLoad添加代理:// 4.设置聊天管理器的代理 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];2.遵守协议@interface ChatViewController ()3.实现代理方法:#pragma mark - EMCallManagerDele原创 2016-02-16 20:20:33 · 3870 阅读 · 0 评论 -
04环信聊天界面 - 完善聊天输入框
一、设置inputToolbar的高度,随着输入文字的增多而改变1.连线inputToolbar的高度的约束:2.在UITextViewDelegate代理方法 - textViewDidChange:计算高度#pragma mark - UITextViewDelegate- (void)textViewDidChange:(UITextView *)textView{原创 2016-02-17 22:29:34 · 2659 阅读 · 0 评论 -
04环信聊天界面 - 发送语音
1.拖一个按钮覆盖textView,设置高度和textView一样,左右下的约束和textView一样。默认隐藏。点击了左边vioceBtn按钮才显示#pragma mark - action/** * VoiceBtn被点击了 */- (IBAction)clickedVoiceBtn:(UIButton *)sender{ // 按钮图片切换 self.vo原创 2016-02-18 21:57:40 · 5067 阅读 · 0 评论 -
04环信聊天界面 - 完善语音消息在cell上的显示
1.在发送语言的方法里,把语言消息添加到数据源,并刷新表格/** * 发送语音 * * @param recordPath 语音文件路径 * @param duration 时间 */- (void)sendVoice:(NSString *)recordPath duration:(NSInteger)duration{ // 1.构造一个 语音消息体 E原创 2016-02-19 20:59:32 · 2191 阅读 · 0 评论 -
04环信聊天界面 - 播放语音消息
分析:需要监听messageLabel的点击事件,然后播放1.在chatCell里给messageLabel添加点击事件/** * 初始化 */-(void)awakeFromNib{ // 1.给messageLabel添加手势 self.messageLabel.userInteractionEnabled = YES; UITapGestureRecog原创 2016-02-20 19:44:31 · 4229 阅读 · 0 评论 -
04环信聊天界面 - 发送图片消息和显示图片
1.在聊天控制器连线/** * 点击上传图片 */- (IBAction)showImgPickerAction:(UIButton *)sender{ // 图片选择控制器 UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init]; imgPicker.source原创 2016-02-21 15:51:13 · 12751 阅读 · 0 评论 -
04环信聊天界面 - 显示时间的cell
1.拖一个UITableViewCell,再向里面添加一个UILabel,设置label垂直居中对齐,水平居中对齐。自定义一个继承与UITabelViewCell的TimeCell类。2.聊天控制器tableView的dataSoures之前是存放的 EMMessage 消息模型,现在需要加入 时间(字符串)。我们采用的方案是单独写一个方法来添加数据源,在此方法里,判断是否要给数据原创 2016-02-22 20:09:55 · 4521 阅读 · 0 评论 -
02环信集成SDK基础功能 - 退出登录
1.界面布局,相关配置 2.设置控制器代码//// SettingViewController.m#import "SettingViewController.h"#import "EaseMob.h"@interface SettingViewController ()@property (weak, nonatomic) IBOutlet UIButton *lo原创 2016-02-13 19:08:17 · 2827 阅读 · 0 评论 -
03环信好友管理 - 删除好友
要实现的效果:方法:#pragma mark - tableViewDelegate/** * 实现这个方法,滑动表格cell就会出现Delete按钮 */- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowA原创 2016-02-13 16:50:16 · 2593 阅读 · 0 评论 -
实现Socket服务端监听(模拟10086在线服务)
实现socket的监听方法(1)使用C语言实现,(2)使用CocoaAsyncSocket第三方框,内部是对C的封装https://github.com/robbiehanson/CocoaAsyncSocketTelnet命令telnet host port/telnet 192.168.10.10 52881.telnet命令是连接服务器上的某个端口对应的服务原创 2016-02-12 12:14:27 · 2810 阅读 · 0 评论 -
Soket转发消息服务(群聊)
编写群聊服务端代码,稍加改写之前的10086服务端的代码,如下://// ServiceListener.m#import "ServiceListener.h"#import "GCDAsyncSocket.h"@interface ServiceListener() /** * 服务器端的socket对象 */@property(nonatomic,strong)原创 2016-02-12 14:43:09 · 944 阅读 · 0 评论 -
XMPP协议了解
一.Socket层上的协议Socket层上的协议指的数据传输的格式HTTP协议 传输格式:假设:这是假设,实际http的格式不是这样的。 http1.1,content-type:multipart/form-data,content-length:188,body:username=zhangsan&password=123456XMPP协议,是一款即时转载 2016-02-12 15:20:49 · 785 阅读 · 0 评论 -
01环信iOS SDK的集成
零.什么是环信?环信是一个第三平台,提供即时通信(IM –Instant Messaging )的服务环信是在XMPP的基础上进行二次开发环信在网络上传输的数据也是XML使用环信,不用自己搭建服务器,节约成本环信日活30万以下,永远免费公司如要开发即时通讯软件,建议首选环信,环信占用市场份额较大一.集成环信的前提准备注册成为环信开发者http原创 2016-02-12 19:57:15 · 907 阅读 · 0 评论 -
02环信集成SDK基础功能 - 注册&登录
1.创建一个Login.storyboard并设置为Main Interface。2.创建控制器//// LoginViewController.m#import "LoginViewController.h"#import "EaseMob.h"@interface LoginViewController ()@property (weak, nonat原创 2016-02-12 21:03:00 · 1767 阅读 · 0 评论 -
02环信集成SDK基础功能 - 自动登录
自动登录:即首次登录成功后,不需要再次调用登录方法,在下次app启动时,SDK会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。 配置是否进行自动登录SDK中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次app启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。1.修改登录方法,设置自动登录/** * 登录 */- (IB原创 2016-02-12 21:22:16 · 3697 阅读 · 0 评论 -
02环信集成SDK基础功能 - 网络掉线自动重连
当掉线时,IOS SDK会自动重连,只需要监听重连相关的回调,无需进行任何操作。//// MessageViewController.m#import "MessageViewController.h"#import "EaseMob.h"@interface MessageViewController ()@end@implementation MessageViewC原创 2016-02-12 21:44:03 · 3710 阅读 · 0 评论 -
03环信好友管理 - 添加好友(好友申请)
EMChatManagerBuddyDelegateØ上面的协议的实现了对用户的基本操作,如(1)添加好友(2)从本地获取好友列表(3)从服务器获取最新好友列表(4)接收好友添加请求(5)删除好友(6)被好友从名单上删除1.搭建界面,创建相关控制器2.在AddFriendViewController控制器里:/** * 添加好友原创 2016-02-13 10:32:15 · 4599 阅读 · 0 评论 -
03环信好友管理 - 添加好友(好友申请处理结果回调)
我们把环信官方的demo项目中的AppKey改成我们自己的:在AppDelegate+EaseMob.m文件中。然后用test1用户登录,查看发现收到了,test这个用户的 添加好友的申请1.好友申请处理结果回调我们这里选择在联系人控制器ContactViewController里监听//// ContactViewController.m#import "Conta原创 2016-02-13 11:40:02 · 4999 阅读 · 0 评论 -
03环信好友管理 - 获取好友列表
获取好友列表,环信提供了4种方法。从本地获取:该方法比较特殊,只有在您之前获取过好友列表的情况下才会有值,且不能保证最新。NSArray *buddyList = [[EaseMob sharedInstance].chatManager buddyList];另外3种都是从服务器上获取://1. 同步方法EMError *error = nil;NSArray *buddyList原创 2016-02-13 13:19:55 · 8580 阅读 · 0 评论 -
03环信好友管理 - 好友请求同意后刷新联系人列表
需求:当用户test向用户test3申请添加好友,test3同意后,用户test的联系人列表应该刷新(最初没有test3这个好友)实现:所以我们应该在“好友请求”被接受时的回调方法里,向服务器请求最新的好友数据我们这里需要在ContactViewController控制器的 - didAcceptedByBuddy:方法中添加一些代码,最终该方法代码如下:#pragma mark - EM原创 2016-02-13 15:33:08 · 2792 阅读 · 0 评论 -
03环信好友管理 - 监听"加好友"的请求
监听加好友请求当您收到好友请求,如果您没有处理,则您每次登录的时候,服务器都会给你发该请求, 请确保你在登录成功之前已经注册了监听。需求:用户test6向用户test发送“加好友”请求,用户test处理(同意或拒绝),并且同意后要刷新联系人表格。实现:需要实现2个回调方法,具体如下:/*! @method @brief 好友请求被拒绝时的回调 @discussion @pa原创 2016-02-13 16:23:03 · 4978 阅读 · 0 评论 -
04环信聊天界面 - 显示历史会话记录
1.在消息控制器获取历史回话记录/** * 获取历史会话对象记录 */- (void)loadConversations{ // 当前登录用户回话对象列表 NSArray *conversations = [[EaseMob sharedInstance].chatManager conversations]; if (conversations.count ==原创 2016-02-22 22:42:53 · 11558 阅读 · 0 评论
分享