一款基于环信开发的APP-超级家委会
【产品简介】
“超级家委会”是一款基于环信开发的集活动、聊天、项目管理为一体的APP。
如需项目合作,请联系:石锋 18616870207(微信同号)
【功能介绍】
消息
享畅聊,与微信一样好用的通讯功能,免费即时沟通,但在这里只聊工作,去除娱乐化,支持单聊、普通群聊、活动群聊、部门群聊、团队群聊。
【单聊】和好友实时沟通
【群聊】邀请特定的人组建群聊
【活动群聊】对活动感兴趣的人员可以一起畅所欲言,也可和主办方沟通疑问,活动群聊 页面可一键直达活动
【部门/团队群聊】提供团队内部聊天功能,随时与同伴和团队沟通和讨论工作,让沟通更顺畅
【系统消息】实时接收重要信息的通知,如审核申请,报名信息,关注,评论等,并及时做出反馈;
实现功能
项目
提供了包括项目管理、行政办公、教育培训、营销工具等基本应用和丰富的插件功能,通过精心设计打造出体验出色的应用,且每个项目可直达相应群聊,让你和团队成员随时随地参与协作。
【快速立项】明确工作目标并创建项目 ,邀请团队成员加入项目一起来开展工作;
【任务管理】新建任务,指派执行者和添加参与者,添加并更新相关任务信息;
【工作安排】创建「日程」来安排会议、 记录外出和预约重点活动等等工作,也随时了解其他项目成员的工作安排;
【进展同步】通过任务列表随时关注项目进展的更新,进入项目查看具体的进展信息;
【插件丰富】丰富的移动办公应用接入,任务、签到、审批、笔记、文件、费用、班级、学生老师、课程、消课等,应有尽有。
活动
您可以参加活动聚会,学习一项新技能,带上孩子发现未知…更特别的是,您还可以自己组织发起活动,呼朋唤友一起玩耍。
【主办方】提供从发布活动、活动推广、报名管理到财务管理等全流程完整解决方案
【参与者】找到感兴趣的活动,志同道合的朋友,长假远行,家长课堂,周边游,培训课 程,聚会沙龙,冬夏令营,手工课程,多种活动,丰富娱乐生活
【报名信息 随时查收】支持自定义设置报名表单,报名信息详情可查,支持导出
【精彩活动 乐享群聊】一起进入活动群聊,可以和其他参与者一起互动
联系人
【技术实现】
本项目是基于官方最新SDK Hyphenate 进行开发 页面效果基于EasyUI调整 和微信页面效果看齐。
主要实现功能
1、注册 登录 自动登录 重连 退出登录
2. 消息
IM 交互实体,在 SDK 中对应的类型是 EMMessage。EMMessage 由 EMMessageBody 组成。
构造文字消息 构造图片消息 构造图片消息 构造位置消息 构造语音消息 构造视频消息 构造扩展消息(系统消息)
3. 会话
操作聊天消息 EMMessage 的容器,在 SDK 中对应的类型是 EMConversation。
新建 、 获取一个会话 (根据 conversationId 创建一个 conversation)
type:会话类型
createIfNotExist:不存在是否创建
4. 删除会话
删除单个会话
deleteMessages: 删除会话中的消息
5. 获取会话列表
获取所有会话 (内存中有则从内存中取,否则从db中取)
6. 获取会话未读消息
7. 聊天 (发送消息 接收消息 解析普通消息 解析扩展消息)
登录成功之后才能进行聊天操作。发消息时,单聊和群聊调用的是统一接口,区别只是要设置下 message.chatType。
8. 好友管理 (本项目的好友管理是自己服务器上管理的)
9. 好友申请
发送好友申请
监听加好友请求 (项目里面 发送系统消息)
同意加好友申请
10 群组管理
创建群 后台创建的
加入群组 添人进群 退出群组 解散群组 修改群描述 获取群组成员列表
11 群组管理
1.后台配置推送证书
2.代码配置 APNs 使用的推送证书。
3.代码注册离线推送
【联系我们】
如需项目合作,请联系
石锋 18616870207 (微信同号)
“超级家委会”是一款基于环信开发的集活动、聊天、项目管理为一体的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];getConversation:创建与8001的会话
//EMConversationTypeChat 单聊会话
//EMConversationTypeGroupChat 群聊会话
//EMConversationTypeChatRoom 聊天室会话
type:会话类型
createIfNotExist:不存在是否创建
4. 删除会话
删除单个会话
[[EMClient sharedClient].chatManager deleteConversation:@"8001" isDeleteMessages:YES completion:^(NSString *aConversationId, EMError *aError){deleteConversation: 删除与8001的会话
//code
}];
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 (微信同号)