0
评论

webIM发送的文件,能接收到,但是收到的消息中没有文件大小 webIM file

星空如沫 发表了文章 • 48 次浏览 • 2018-01-08 09:40 • 来自相关话题

在webIM中发送附件消息,接收到的消息中文件大小为0
在webIM中发送附件消息,接收到的消息中文件大小为0
3
最佳

环信初始化报错。android4.4 环信_Android

jackydu 回复了问题 • 3 人关注 • 1472 次浏览 • 2018-01-06 20:09 • 来自相关话题

0
回复

环信视频聊天怎么加滤镜? 环信_iOS 环信_Android

回复

jared 发起了问题 • 1 人关注 • 107 次浏览 • 2018-01-06 17:15 • 来自相关话题

1
回复

安卓端的用户全部都显示null,登不进去 环信_Android

回复

心愿♥ 回复了问题 • 1 人关注 • 122 次浏览 • 2018-01-06 16:40 • 来自相关话题

0
评论

环信客户互动云v5.31已上线,新增随机质检功能,使质检结果更加公平、公正 环信客户互动云 环信移动客服 产品更新

产品更新 发表了文章 • 46 次浏览 • 2018-01-05 14:18 • 来自相关话题

本次更新的主要内容为:​优化智能机器人功能,支持为机器人知识规则设置应答策略,使机器人能够根据不同的渠道关联、时间计划发送不同的答案。新增随机质检功能,采取系统对质检样本随机抽样的方法管理质检流程,避免质检作弊,使质检结果更加公平、公正。


环信客户互动云v5.31_产品更新说明

发布日期:2017-12-25

客服模式

客服变更在线状态需要审批

新增“客服变更在线状态需要审批”功能。当管理员打开“客服变更状态需要审批”开关时,普通客服将在线状态从“空闲”切换为忙碌、离开、隐身状态需要管理员审批;当管理员关闭此开关时,普通客服可以随意切换在线状态。

管理员切换在线状态不受此开关影响。

客服变更在线状态:

开关打开时,客服将在线状态从“空闲”切换为忙碌、离开、隐身状态时,将收到弹窗提醒,需填写状态变更理由,并提交至管理员审批。






管理员审批状态变更:

管理员收到客服的状态变更请求后,将在消息中心收到系统消息提醒。可以进入“管理员模式 > 审批管理”页面,审批该请求。

审批通过后,系统自动完成客服的状态切换。同时,系统发送系统消息提醒客服,可在消息中心页面查看。







“客服状态变更需要审批”开关:

需要对客服的在线状态变更进行审批时,管理员可以进入“管理员模式 > 设置 > 系统开关”页面,打开“客服状态变更需要审批”开关。







待接入会话列表显示坐席名

待接入页面的会话列表增加一列:坐席名,用于显示会话指定的客服名称。

注:若会话未指定客服,则只显示技能组名称,不显示客服名称。

管理员模式

机器人知识规则

机器人知识规则新增分类管理、日志管理、和应答策略。日志管理支持管理员查看知识规则相关的日志。分类管理支持将知识规则添加至不同的分类,方便查询和管理知识规则。应答策略为知识规则中的答案的发送策略,支持设置根据不同的渠道关联、时间计划发送不同的答案。

分类管理

在机器人的知识规则页面,可以添加、编辑分类,并修改知识规则所在的分类。

查看分类:

在分类列表中选择任意分类,查看该分类中的知识规则。

管理分类:

在分类列表下方,点击“管理分类”按钮,添加、编辑分类。

修改分类:

选中一条或多条知识规则,在弹出窗口中点击“修改分类”按钮,修改选中的知识规则所属的分类。






日志管理

日志管理支持管理员查看知识规则相关的日志,可以按照时间范围查询,以及导出。

在知识规则页面,点击“添加规则”右侧的下拉按钮,点击“日志管理”按钮,查看日志。

应答策略

支持为知识规则中的答案单独设置发送策略,在添加、编辑知识规则时,均可以设置发送策略。策略包含策略名称、条件(渠道关联和时间计划)、执行(知识规则的答案),当满足策略中的条件时,发送对应的答案给客户。

当知识规则中有多个答案时,如果不设置发送策略,则默认随机发送其中一个答案。

编辑知识规则:

在知识规则页面,点击知识规则右侧的“编辑”按钮,可以编辑知识规则。包括添加/编辑问题、添加/编辑答案。编辑完成后,点击“确认”。







添加发送策略:

在添加、编辑知识规则页面,点击“添加策略”按钮。
填写策略名称,选择一个渠道关联(不选择时,策略不生效),选择一个时间计划(不选择时,默认为全部时间),选择知识规则的一条答案,并保存。

设置好发送策略后,当客户的消息匹配知识规则的问题,并满足渠道关联和时间计划这两个条件时,发送策略中设置的答案给客户。







随机质检

新增随机质检功能。采取系统对质检样本随机抽样的方法管理质检流程,避免质检作弊,使质检结果更加公平、公正。

随机质检功能为标准版/旗舰版增值服务,如需开通,请提供租户ID并联系环信商务经理。

查看质检任务

质检任务由管理员/质检员创建,质检任务包含系统基于筛选条件随机抽取的客户会话。

在随机质检页面,管理员可以查看所有质检任务;质检员可以查看所有/自己创建的质检任务。







设置质检权限

进入“管理员模式 > 设置 > 权限管理”页面,设置质检员查看质检任务的数据权限。
租户:支持查看系统内全部质检任务客服:只能查看自己创建的质检任务








创建质检任务

管理员/质检员每次可以为自己创建一条质检任务。质检任务分为质检中、已完成两个状态。当有质检中的任务时,需要先完成该质检任务,才可以创建新的质检任务。

在随机质检页面,点击右上角“创建质检任务”按钮,设置相关质检条件,再次点击“创建质检任务”按钮。系统根据质检条件随机抽取对应数量的会话,并创建质检任务。
任务名称:质检任务的名称。时间范围:必须为一个月内,如11月1日至11月30日。会话抽样范围:包含会话来源渠道、技能组、关联、会话标签、参与客服。会话质检条件:包含首次响应时长、会话时长、平均/单次响应时长、访客/坐席消息数、满意度评价。抽样数量:必须为1至300之间的数字。








完成质检任务

管理员/质检员可以随时对质检中的任务里的会话进行质检评分,完成所有会话的质检评分后,即可完成该质检任务。

在随机质检页面,点击自己创建的质检任务,可以查看任务详情以及会话列表。点击任意会话,可查看会话详情,并对会话进行质检评分。





“24小时排队趋势”显示排队的会话详情

在“统计查询 > 排队统计”页面,点击“24小时排队趋势”中的柱状图,可以查看对应的排队的会话详情。

注:从该版本开始,“排队统计”仅支持筛选最近3个月及当月的统计数据。例如,本月为12月,可筛选9月至12月的数据。

Android SDK访客端

当前版本:V1.1.3

新功能/优化:
支持消息预知功能(增值服务)支持FCM推送
 
环信客户互动云更新日志http://docs.easemob.com/cs/releasenote/5.31 

环信客户互动云登陆地址http://kefu.easemob.com/ 查看全部
本次更新的主要内容为:​优化智能机器人功能,支持为机器人知识规则设置应答策略,使机器人能够根据不同的渠道关联、时间计划发送不同的答案。新增随机质检功能,采取系统对质检样本随机抽样的方法管理质检流程,避免质检作弊,使质检结果更加公平、公正。


环信客户互动云v5.31_产品更新说明

发布日期:2017-12-25

客服模式


客服变更在线状态需要审批

新增“客服变更在线状态需要审批”功能。当管理员打开“客服变更状态需要审批”开关时,普通客服将在线状态从“空闲”切换为忙碌、离开、隐身状态需要管理员审批;当管理员关闭此开关时,普通客服可以随意切换在线状态。

管理员切换在线状态不受此开关影响。

客服变更在线状态:

开关打开时,客服将在线状态从“空闲”切换为忙碌、离开、隐身状态时,将收到弹窗提醒,需填写状态变更理由,并提交至管理员审批。

01.png


管理员审批状态变更:

管理员收到客服的状态变更请求后,将在消息中心收到系统消息提醒。可以进入“管理员模式 > 审批管理”页面,审批该请求。

审批通过后,系统自动完成客服的状态切换。同时,系统发送系统消息提醒客服,可在消息中心页面查看。

02.png



“客服状态变更需要审批”开关:

需要对客服的在线状态变更进行审批时,管理员可以进入“管理员模式 > 设置 > 系统开关”页面,打开“客服状态变更需要审批”开关。

03.png



待接入会话列表显示坐席名

待接入页面的会话列表增加一列:坐席名,用于显示会话指定的客服名称。

注:若会话未指定客服,则只显示技能组名称,不显示客服名称。

管理员模式

机器人知识规则

机器人知识规则新增分类管理、日志管理、和应答策略。日志管理支持管理员查看知识规则相关的日志。分类管理支持将知识规则添加至不同的分类,方便查询和管理知识规则。应答策略为知识规则中的答案的发送策略,支持设置根据不同的渠道关联、时间计划发送不同的答案。

分类管理

在机器人的知识规则页面,可以添加、编辑分类,并修改知识规则所在的分类。

查看分类:

在分类列表中选择任意分类,查看该分类中的知识规则。

管理分类:

在分类列表下方,点击“管理分类”按钮,添加、编辑分类。

修改分类:

选中一条或多条知识规则,在弹出窗口中点击“修改分类”按钮,修改选中的知识规则所属的分类。

04.png


日志管理

日志管理支持管理员查看知识规则相关的日志,可以按照时间范围查询,以及导出。

在知识规则页面,点击“添加规则”右侧的下拉按钮,点击“日志管理”按钮,查看日志。

应答策略

支持为知识规则中的答案单独设置发送策略,在添加、编辑知识规则时,均可以设置发送策略。策略包含策略名称、条件(渠道关联和时间计划)、执行(知识规则的答案),当满足策略中的条件时,发送对应的答案给客户。

当知识规则中有多个答案时,如果不设置发送策略,则默认随机发送其中一个答案。

编辑知识规则:

在知识规则页面,点击知识规则右侧的“编辑”按钮,可以编辑知识规则。包括添加/编辑问题、添加/编辑答案。编辑完成后,点击“确认”。

05.png



添加发送策略:

在添加、编辑知识规则页面,点击“添加策略”按钮。
填写策略名称,选择一个渠道关联(不选择时,策略不生效),选择一个时间计划(不选择时,默认为全部时间),选择知识规则的一条答案,并保存。

设置好发送策略后,当客户的消息匹配知识规则的问题,并满足渠道关联和时间计划这两个条件时,发送策略中设置的答案给客户。

05.png



随机质检

新增随机质检功能。采取系统对质检样本随机抽样的方法管理质检流程,避免质检作弊,使质检结果更加公平、公正。

随机质检功能为标准版/旗舰版增值服务,如需开通,请提供租户ID并联系环信商务经理。

查看质检任务

质检任务由管理员/质检员创建,质检任务包含系统基于筛选条件随机抽取的客户会话。

在随机质检页面,管理员可以查看所有质检任务;质检员可以查看所有/自己创建的质检任务。

07.png



设置质检权限

进入“管理员模式 > 设置 > 权限管理”页面,设置质检员查看质检任务的数据权限。
  • 租户:支持查看系统内全部质检任务
  • 客服:只能查看自己创建的质检任务



08.png



创建质检任务

管理员/质检员每次可以为自己创建一条质检任务。质检任务分为质检中、已完成两个状态。当有质检中的任务时,需要先完成该质检任务,才可以创建新的质检任务。

在随机质检页面,点击右上角“创建质检任务”按钮,设置相关质检条件,再次点击“创建质检任务”按钮。系统根据质检条件随机抽取对应数量的会话,并创建质检任务。
  • 任务名称:质检任务的名称。
  • 时间范围:必须为一个月内,如11月1日至11月30日。
  • 会话抽样范围:包含会话来源渠道、技能组、关联、会话标签、参与客服。
  • 会话质检条件:包含首次响应时长、会话时长、平均/单次响应时长、访客/坐席消息数、满意度评价。
  • 抽样数量:必须为1至300之间的数字。



09.png



完成质检任务

管理员/质检员可以随时对质检中的任务里的会话进行质检评分,完成所有会话的质检评分后,即可完成该质检任务。

在随机质检页面,点击自己创建的质检任务,可以查看任务详情以及会话列表。点击任意会话,可查看会话详情,并对会话进行质检评分。
10.png


“24小时排队趋势”显示排队的会话详情

在“统计查询 > 排队统计”页面,点击“24小时排队趋势”中的柱状图,可以查看对应的排队的会话详情。

注:从该版本开始,“排队统计”仅支持筛选最近3个月及当月的统计数据。例如,本月为12月,可筛选9月至12月的数据。

Android SDK访客端

当前版本:V1.1.3

新功能/优化:
  • 支持消息预知功能(增值服务)
  • 支持FCM推送

 
环信客户互动云更新日志http://docs.easemob.com/cs/releasenote/5.31 

环信客户互动云登陆地址http://kefu.easemob.com/
1
回复

客服Android,SDK,线上崩溃 环信_Android

baoshu 回复了问题 • 2 人关注 • 146 次浏览 • 2018-01-05 11:11 • 来自相关话题

0
回复

集成小米推送 MIPushReceiver里onReceiveRegisterResult() 方法都不执行在吗办 集成小米推送 MIPushReceiver

回复

xxxloli 发起了问题 • 1 人关注 • 70 次浏览 • 2018-01-04 17:16 • 来自相关话题

2
回复

android注册总返回EMError.GENERAL_ERROR 环信_Android

lovecyg123 回复了问题 • 3 人关注 • 803 次浏览 • 2018-01-04 14:04 • 来自相关话题

1
评论

一款基于环信开发的APP-超级家委会 环信_Android 环信_iOS 开源项目 SDK Hyphenate

magic_陌 发表了文章 • 98 次浏览 • 2018-01-04 10:02 • 来自相关话题

【产品简介】
 
“超级家委会”是一款基于环信开发的集活动、聊天、项目管理为一体的APP。

如需项目合作,请联系:石锋 18616870207(微信同号)

【功能介绍】

消息

享畅聊,与微信一样好用的通讯功能,免费即时沟通,但在这里只聊工作,去除娱乐化,支持单聊、普通群聊、活动群聊、部门群聊、团队群聊。






【单聊】和好友实时沟通
【群聊】邀请特定的人组建群聊
【活动群聊】对活动感兴趣的人员可以一起畅所欲言,也可和主办方沟通疑问,活动群聊 页面可一键直达活动
【部门/团队群聊】提供团队内部聊天功能,随时与同伴和团队沟通和讨论工作,让沟通更顺畅
【系统消息】实时接收重要信息的通知,如审核申请,报名信息,关注,评论等,并及时做出反馈;
 
实现功能
好友/群内的文字、表情、图片、位置、收藏、名片发送和接收查看群信息快速查找新建群 系统消息推送删除会话获取未读消息@功能正在实现中...





















 
项目

提供了包括项目管理、行政办公、教育培训、营销工具等基本应用和丰富的插件功能,通过精心设计打造出体验出色的应用,且每个项目可直达相应群聊,让你和团队成员随时随地参与协作。





 
【快速立项】明确工作目标并创建项目 ,邀请团队成员加入项目一起来开展工作;
【任务管理】新建任务,指派执行者和添加参与者,添加并更新相关任务信息;
【工作安排】创建「日程」来安排会议、 记录外出和预约重点活动等等工作,也随时了解其他项目成员的工作安排;
【进展同步】通过任务列表随时关注项目进展的更新,进入项目查看具体的进展信息;
【插件丰富】丰富的移动办公应用接入,任务、签到、审批、笔记、文件、费用、班级、学生老师、课程、消课等,应有尽有。
 
活动
您可以参加活动聚会,学习一项新技能,带上孩子发现未知…更特别的是,您还可以自己组织发起活动,呼朋唤友一起玩耍。





 
【主办方】提供从发布活动、活动推广、报名管理到财务管理等全流程完整解决方案
【参与者】找到感兴趣的活动,志同道合的朋友,长假远行,家长课堂,周边游,培训课 程,聚会沙龙,冬夏令营,手工课程,多种活动,丰富娱乐生活
【报名信息 随时查收】支持自定义设置报名表单,报名信息详情可查,支持导出
【精彩活动 乐享群聊】一起进入活动群聊,可以和其他参与者一起互动
 
联系人
搜索好友/群 添加好友/群 发送/接受好友申请










 
【技术实现】

本项目是基于官方最新SDK Hyphenate 进行开发 页面效果基于EasyUI调整 和微信页面效果看齐。
 
主要实现功能 
 
1、注册 登录 自动登录 重连 退出登录EMError *error = [[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111"];
if (error==nil) {
NSLog(@"注册成功");
}
EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error) {
NSLog(@"登录成功");
}

自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。

SDK 中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。

EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error)
{
[[EMClient sharedClient].options setIsAutoLogin:YES];
}
2. 消息
IM 交互实体,在 SDK 中对应的类型是 EMMessage。EMMessage 由 EMMessageBody 组成。

构造文字消息 构造图片消息 构造图片消息 构造位置消息 构造语音消息 构造视频消息 构造扩展消息(系统消息)构造文字消息
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造图片消息
EMImageMessageBody *body = [[EMImageMessageBody alloc] initWithData:data displayName:@"image.png"];
// body.compressionRatio = 1.0f; 1.0表示发送原图不压缩。默认值是0.6,压缩的倍数是0.6倍
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造扩展消息
// 以单聊消息举例
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息
//message.chatType = EMChatTypeGroupChat;// 设置为群聊消息
//message.chatType = EMChatTypeChatRoom;// 设置为聊天室消息
message.ext = @{@"key":@"value"}; // 扩展消息部分

扩展消息主要用要系统消息里
3. 会话

操作聊天消息 EMMessage 的容器,在 SDK 中对应的类型是 EMConversation。

新建 、 获取一个会话 (根据 conversationId 创建一个 conversation)[[EMClient sharedClient].chatManager getConversation:@"8001" type:EMConversationTypeChat createIfNotExist:YES];
//EMConversationTypeChat 单聊会话
//EMConversationTypeGroupChat 群聊会话
//EMConversationTypeChatRoom 聊天室会话


getConversation:创建与8001的会话
type:会话类型
createIfNotExist:不存在是否创建
 
4. 删除会话

删除单个会话[[EMClient sharedClient].chatManager deleteConversation:@"8001" isDeleteMessages:YES completion:^(NSString *aConversationId, EMError *aError){
//code
}];


deleteConversation: 删除与8001的会话
deleteMessages: 删除会话中的消息
 
5. 获取会话列表

获取所有会话 (内存中有则从内存中取,否则从db中取)NSArray *conversations = [[EMClient sharedClient].chatManager getAllConversations];
6. 获取会话未读消息 [EMConversation unreadMessagesCount]; 显示红点
7. 聊天 (发送消息 接收消息 解析普通消息 解析扩展消息)

登录成功之后才能进行聊天操作。发消息时,单聊和群聊调用的是统一接口,区别只是要设置下 message.chatType。/*!
@property
@brief 发送消息
@discussion
异步方法
*/
- (void)sendMessage:(EMMessage *)aMessage
progress:(void (^)(int progress))aProgressBlock
completion:(void (^)(EMMessage *message, EMError *error))aCompletionBlock;

//调用:[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:^(EMMessage *aMessage, EMError *aError) {}];

//消息回调:EMChatManagerDelegate

//移除消息回调
[[EMClient sharedClient].chatManager removeDelegate:self];

//注册消息回调
[[EMClient sharedClient].chatManager addDelegate:self delegateQueue:nil];

/*!
@method
@brief 接收到一条及以上非cmd消息
*/
- (void)messagesDidReceive:(NSArray *)aMessages;

解析普通消息
// 收到消息的回调,带有附件类型的消息可以用 SDK 提供的下载附件方法下载(后面会讲到)
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
EMMessageBody *msgBody = message.body;
switch (msgBody.type) {
case EMMessageBodyTypeText:
{
// 收到的文字消息
EMTextMessageBody *textBody = (EMTextMessageBody *)msgBody;
NSString *txt = textBody.text;
NSLog(@"收到的文字是 txt -- %@",txt);
}
break;
case EMMessageBodyTypeImage:

解析扩展消息
- (void)cmdMessagesDidReceive:(NSArray *)aCmdMessages {
for (EMMessage *message in aCmdMessages) {
// cmd消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"cmd消息中的扩展属性是 -- %@",ext)
}
}
// 收到消息回调
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
// 消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"消息中的扩展属性是 -- %@",ext);
}
}



 8. 好友管理 (本项目的好友管理是自己服务器上管理的)

9. 好友申请

发送好友申请 EMError *error = [[EMClient sharedClient].contactManager addContact:@"6001" message:@"我想加您为好友"];
if (!error) {
NSLog(@"添加成功");
}
监听加好友请求 (项目里面 发送系统消息)/*!
* 用户A发送加用户B为好友的申请,用户B会收到这个回调
*
* @param aUsername 用户名
* @param aMessage 附属信息
*/
- (void)friendRequestDidReceiveFromUser:(NSString *)aUsername
message:(NSString *)aMessage;
同意加好友申请 EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:@"8001"];
if (!error) {
NSLog(@"发送同意成功");
}
10 群组管理
创建群 后台创建的
加入群组 添人进群 退出群组 解散群组 修改群描述 获取群组成员列表

11 群组管理
1.后台配置推送证书
2.代码配置 APNs 使用的推送证书。
3.代码注册离线推送

【联系我们】
如需项目合作,请联系
石锋 18616870207 (微信同号) 查看全部
【产品简介】
 
“超级家委会”是一款基于环信开发的集活动、聊天、项目管理为一体的APP。

如需项目合作,请联系:石锋 18616870207(微信同号)

【功能介绍】

消息

享畅聊,与微信一样好用的通讯功能,免费即时沟通,但在这里只聊工作,去除娱乐化,支持单聊、普通群聊、活动群聊、部门群聊、团队群聊。

聊天.jpg


【单聊】和好友实时沟通
【群聊】邀请特定的人组建群聊
【活动群聊】对活动感兴趣的人员可以一起畅所欲言,也可和主办方沟通疑问,活动群聊 页面可一键直达活动
【部门/团队群聊】提供团队内部聊天功能,随时与同伴和团队沟通和讨论工作,让沟通更顺畅
【系统消息】实时接收重要信息的通知,如审核申请,报名信息,关注,评论等,并及时做出反馈;
 
实现功能
  • 好友/群内的文字、表情、图片、位置、收藏、名片发送和接收
  • 查看群信息
  • 快速查找
  • 新建群 
  • 系统消息推送
  • 删除会话
  • 获取未读消息
  • @功能正在实现中...


聊天功能介绍1.jpg

聊天功能介绍2.jpg

聊天功能介绍3.jpg

聊天功能介绍4.jpg

聊天功能介绍6.jpg

 
项目

提供了包括项目管理、行政办公、教育培训、营销工具等基本应用和丰富的插件功能,通过精心设计打造出体验出色的应用,且每个项目可直达相应群聊,让你和团队成员随时随地参与协作。

聊天功能介绍8.jpg

 
【快速立项】明确工作目标并创建项目 ,邀请团队成员加入项目一起来开展工作;
【任务管理】新建任务,指派执行者和添加参与者,添加并更新相关任务信息;
【工作安排】创建「日程」来安排会议、 记录外出和预约重点活动等等工作,也随时了解其他项目成员的工作安排;
【进展同步】通过任务列表随时关注项目进展的更新,进入项目查看具体的进展信息;
【插件丰富】丰富的移动办公应用接入,任务、签到、审批、笔记、文件、费用、班级、学生老师、课程、消课等,应有尽有。
 
活动
您可以参加活动聚会,学习一项新技能,带上孩子发现未知…更特别的是,您还可以自己组织发起活动,呼朋唤友一起玩耍。

聊天功能介绍9.jpg

 
【主办方】提供从发布活动、活动推广、报名管理到财务管理等全流程完整解决方案
【参与者】找到感兴趣的活动,志同道合的朋友,长假远行,家长课堂,周边游,培训课 程,聚会沙龙,冬夏令营,手工课程,多种活动,丰富娱乐生活
【报名信息 随时查收】支持自定义设置报名表单,报名信息详情可查,支持导出
【精彩活动 乐享群聊】一起进入活动群聊,可以和其他参与者一起互动
 
联系人
  • 搜索好友/群 
  • 添加好友/群 
  • 发送/接受好友申请


聊天功能介绍10.jpg


聊天功能介绍5.jpg

 
【技术实现】

本项目是基于官方最新SDK Hyphenate 进行开发 页面效果基于EasyUI调整 和微信页面效果看齐。
 
主要实现功能 
 
1、注册 登录 自动登录 重连 退出登录
EMError *error = [[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111"];
if (error==nil) {
NSLog(@"注册成功");
}
EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error) {
NSLog(@"登录成功");
}

自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。

SDK 中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。

EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error)
{
[[EMClient sharedClient].options setIsAutoLogin:YES];
}

2. 消息
IM 交互实体,在 SDK 中对应的类型是 EMMessage。EMMessage 由 EMMessageBody 组成。

构造文字消息 构造图片消息 构造图片消息 构造位置消息 构造语音消息 构造视频消息 构造扩展消息(系统消息)
构造文字消息
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造图片消息
EMImageMessageBody *body = [[EMImageMessageBody alloc] initWithData:data displayName:@"image.png"];
// body.compressionRatio = 1.0f; 1.0表示发送原图不压缩。默认值是0.6,压缩的倍数是0.6倍
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造扩展消息
// 以单聊消息举例
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息
//message.chatType = EMChatTypeGroupChat;// 设置为群聊消息
//message.chatType = EMChatTypeChatRoom;// 设置为聊天室消息
message.ext = @{@"key":@"value"}; // 扩展消息部分

扩展消息主要用要系统消息里

3. 会话

操作聊天消息 EMMessage 的容器,在 SDK 中对应的类型是 EMConversation。

新建 、 获取一个会话 (根据 conversationId 创建一个 conversation)
[[EMClient sharedClient].chatManager getConversation:@"8001" type:EMConversationTypeChat createIfNotExist:YES];
//EMConversationTypeChat 单聊会话
//EMConversationTypeGroupChat 群聊会话
//EMConversationTypeChatRoom 聊天室会话


getConversation:创建与8001的会话
type:会话类型
createIfNotExist:不存在是否创建
 
4. 删除会话

删除单个会话
[[EMClient sharedClient].chatManager deleteConversation:@"8001" isDeleteMessages:YES completion:^(NSString *aConversationId, EMError *aError){
//code
}];


deleteConversation: 删除与8001的会话
deleteMessages: 删除会话中的消息
 
5. 获取会话列表

获取所有会话 (内存中有则从内存中取,否则从db中取)
NSArray *conversations = [[EMClient sharedClient].chatManager getAllConversations];

6. 获取会话未读消息 
[EMConversation unreadMessagesCount]; 显示红点       

7. 聊天 (发送消息 接收消息 解析普通消息 解析扩展消息)

登录成功之后才能进行聊天操作。发消息时,单聊和群聊调用的是统一接口,区别只是要设置下 message.chatType。
/*!
@property
@brief 发送消息
@discussion
异步方法
*/
- (void)sendMessage:(EMMessage *)aMessage
progress:(void (^)(int progress))aProgressBlock
completion:(void (^)(EMMessage *message, EMError *error))aCompletionBlock;

//调用:[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:^(EMMessage *aMessage, EMError *aError) {}];

//消息回调:EMChatManagerDelegate

//移除消息回调
[[EMClient sharedClient].chatManager removeDelegate:self];

//注册消息回调
[[EMClient sharedClient].chatManager addDelegate:self delegateQueue:nil];

/*!
@method
@brief 接收到一条及以上非cmd消息
*/
- (void)messagesDidReceive:(NSArray *)aMessages;

解析普通消息
// 收到消息的回调,带有附件类型的消息可以用 SDK 提供的下载附件方法下载(后面会讲到)
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
EMMessageBody *msgBody = message.body;
switch (msgBody.type) {
case EMMessageBodyTypeText:
{
// 收到的文字消息
EMTextMessageBody *textBody = (EMTextMessageBody *)msgBody;
NSString *txt = textBody.text;
NSLog(@"收到的文字是 txt -- %@",txt);
}
break;
case EMMessageBodyTypeImage:

解析扩展消息
- (void)cmdMessagesDidReceive:(NSArray *)aCmdMessages {
for (EMMessage *message in aCmdMessages) {
// cmd消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"cmd消息中的扩展属性是 -- %@",ext)
}
}
// 收到消息回调
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
// 消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"消息中的扩展属性是 -- %@",ext);
}
}



 8. 好友管理 (本项目的好友管理是自己服务器上管理的)

9. 好友申请

发送好友申请
 EMError *error = [[EMClient sharedClient].contactManager addContact:@"6001" message:@"我想加您为好友"];
if (!error) {
NSLog(@"添加成功");
}

监听加好友请求 (项目里面 发送系统消息)
/*!
* 用户A发送加用户B为好友的申请,用户B会收到这个回调
*
* @param aUsername 用户名
* @param aMessage 附属信息
*/
- (void)friendRequestDidReceiveFromUser:(NSString *)aUsername
message:(NSString *)aMessage;

同意加好友申请 
EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:@"8001"];
if (!error) {
NSLog(@"发送同意成功");
}

10 群组管理
创建群 后台创建的
加入群组 添人进群 退出群组 解散群组 修改群描述 获取群组成员列表

11 群组管理
1.后台配置推送证书
2.代码配置 APNs 使用的推送证书。
3.代码注册离线推送

【联系我们】
如需项目合作,请联系
石锋 18616870207 (微信同号)
0
回复

web怎样发送语言信息? 环信_WebIM 环信移动客服

回复

﹎皒願意丶 发起了问题 • 1 人关注 • 144 次浏览 • 2018-01-04 00:25 • 来自相关话题

1
回复

Android自定义消息 环信_Android

回复

心事 回复了问题 • 1 人关注 • 115 次浏览 • 2018-01-03 16:55 • 来自相关话题

4
回复

android集成环信3.0混淆打包缺失文件 环信_Android

baoshu 回复了问题 • 3 人关注 • 192 次浏览 • 2018-01-03 15:32 • 来自相关话题

0
回复

HelpDeskUI集成 HelpDeskUI

回复

zongzi 发起了问题 • 1 人关注 • 102 次浏览 • 2018-01-03 11:13 • 来自相关话题

0
回复

环信语音及视频聊天界面,如何最小化窗口,进行其他操作 聊天界面最小化

回复

IT部落_9527 发起了问题 • 1 人关注 • 103 次浏览 • 2018-01-03 11:10 • 来自相关话题

1
回复

iOS端,发送消息时调用的方法内部有关于插入信息到数据库吗? iOS

回复

chickenho 回复了问题 • 1 人关注 • 109 次浏览 • 2018-01-02 20:12 • 来自相关话题

3
回复

imgeek友情链接 站务 imgeek

beyond 回复了问题 • 2 人关注 • 1905 次浏览 • 2018-01-02 18:34 • 来自相关话题

1
回复

iOS 消息漫游 iOS 漫游 消息

beyond 回复了问题 • 2 人关注 • 137 次浏览 • 2018-01-02 18:21 • 来自相关话题

1
回复

webIM多页面共存问题 环信_WebIM

beyond 回复了问题 • 2 人关注 • 234 次浏览 • 2018-01-02 18:12 • 来自相关话题

0
回复

环信2.x中的 conversation.markAllMessagesAsRead();失效 conversation.markAllMessagesAsRead();失效

回复

sorgs 发起了问题 • 1 人关注 • 77 次浏览 • 2018-01-02 15:36 • 来自相关话题

0
回复

酬谢,哪位同学能帮忙集成调试环信小程序 小程序

回复

jackiv 发起了问题 • 1 人关注 • 92 次浏览 • 2018-01-02 15:16 • 来自相关话题

5
评论

【有奖互动】如果把各编程语言比作各国语言,哪种语言对应中文? 有奖调查 程序员 编程

beyond 发表了文章 • 72 次浏览 • 2018-01-02 14:34 • 来自相关话题

Quora 问答社区最近有人提了一个有趣的问题:
如果把编程语言比作各国语言,会分别对应什么?
目前点赞最高的回复如下:
Python 是英语,迅速成为许多人说的全球“默认”语言。多数情况下,相对容易学习,表达,语法简洁。

C 是中文,非常紧凑和快速,但很难学习和写作,容易“倒”在起点。
 
Lisp 是世界语(Esperanto)。只有一小群忠实的人说,并且一直告诉别人这有多棒。

Ruby 会是法语。这是一种可爱的语言,充满了例外和怪癖。一度受到精英的喜爱。现在虽然快要过时了,但仍然性感。

Ruby 会是法语,这是一种可爱的语言,充满了例外和怪癖。一度受到精英的喜爱。现在虽然快要过时了,但仍然性感。

Assembly 是拉丁语。现在几乎没什么人说了,尽管它是大多数现代语言的基础。

对此,中国小伙伴发表了他们的看法:
@网友:PHP是中文,想白话文就白话文,想文言文就文言文。


@网友:Java 是日语,入门很容易,精通很痛苦

对此问题,你怎么看?欢迎评论参与探讨。评论前5名同学送出环信定制指尖陀螺一个。






  查看全部
Quora 问答社区最近有人提了一个有趣的问题:

如果把编程语言比作各国语言,会分别对应什么?


目前点赞最高的回复如下:

Python 是英语,迅速成为许多人说的全球“默认”语言。多数情况下,相对容易学习,表达,语法简洁。

C 是中文,非常紧凑和快速,但很难学习和写作,容易“倒”在起点。
 
Lisp 是世界语(Esperanto)。只有一小群忠实的人说,并且一直告诉别人这有多棒。

Ruby 会是法语。这是一种可爱的语言,充满了例外和怪癖。一度受到精英的喜爱。现在虽然快要过时了,但仍然性感。

Ruby 会是法语,这是一种可爱的语言,充满了例外和怪癖。一度受到精英的喜爱。现在虽然快要过时了,但仍然性感。

Assembly 是拉丁语。现在几乎没什么人说了,尽管它是大多数现代语言的基础。



对此,中国小伙伴发表了他们的看法:

@网友:PHP是中文,想白话文就白话文,想文言文就文言文。


@网友:Java 是日语,入门很容易,精通很痛苦



对此问题,你怎么看?欢迎评论参与探讨。评论前5名同学送出环信定制指尖陀螺一个。


8201EEC6@7B48295(01-02-14-33-46).jpg

 
1
最佳

如何集成小米推送3.x 小米推送 Android 3.x sdk

回复

baoshu 回复了问题 • 1 人关注 • 171 次浏览 • 2017-12-29 14:52 • 来自相关话题

0
回复

在vpn环境下 登录环信 连接超时 官方demo也是这种情况 环信_iOS

回复

robust 发起了问题 • 1 人关注 • 128 次浏览 • 2017-12-28 12:58 • 来自相关话题