【环信IM集成指南】iOS端常见问题整理

建议用浏览器搜索定位问题~
本文持续更新,欢迎大家留言点菜~


1、集成IM如何自定义添加表情组

https://www.imgeek.org/article/825357506


2、旧版音视频与EaseCallKit兼容升级方案

https://www.imgeek.org/article/825357507

 
3、如何集成环信EaseIMKit和EaseCallKit源码

https://www.imgeek.org/article/825357493

 
4、解决集成EaseIMKit源码后没有图片的问题

https://www.imgeek.org/article/825357495

 
5、EaseIMKit如何设置昵称、头像

https://www.imgeek.org/article/825354241

 
6、Swift是否可以集成环信IM SDK?

https://www.imgeek.org/article/825357511

 
7、环信IM会话列表和聊天界面修改头像和昵称

https://www.imgeek.org/article/825357608

 
8、手把手教集成EaseIMKit源码 

https://www.imgeek.org/article/825357673


9、环信聊天室如何每次进来可以看到之前的已读消息

https://imgeek.org/article/825357723


10、这几个iOS拓展字段,是只对iOS生效吗?对安卓没有影响吧?
em_push_content 自定义推送显示

em_push_category 向 APNs Payload 中添加 category 字段
em_push_sound 自定义推送提示音
em_push_mutable_content 开启 APNs 通知扩展
em_ignore_notification 发送静默消息
em_force_notification 设置强制推送型 APNs

答:下面这三个对安卓不生效,其他的是两端都会起作用。
em_push_category、em_push_sound、em_push_mutable_content

11、无网时发送消息,然后迅速切到有网状态。这时显示发送成功,然后回退到上一个页面再进入到IM页,刚刚那条消息被重复发送了


可以开通服务端消息去重功能。


12、如果设置了离线不踢出聊天室,那聊天室的消息会有离线推送吗?

聊天室没有离线处理,所以没有离线推送。


13、cmd不进行漫游功能配置成功之前的历史消息,在配置好之后还是能拉下来的。


14、iOS和安卓端发视频消息,对视频格式有要求吗?
答:没有


15.图片发送设置了缩略图,收到的消息里面没有缩略图,只有源文件数据

0ae6716b0152ac3a581b01fc4007463d.jpg

接收方会直接将缩略图下载到本地,SDK会自动把缩略图缓存到本地,您直接通过body.thumbnailLocalPath就可以获取到了, 我们的UI SDK已经对这些做了封装,不需要您再单独进行处理,如果您这边就是想拿到这张缩略图来使用的话,就需要在messagesDidReceive方法里面自己再判断一下,如果是图片消息的话,就去打印缩略图的路径,然后通过这个路径可以获取到缩略图的原图

case EMMessageBodyTypeImage:
{
// 得到一个图片消息body
EMImageMessageBody *body = ((EMImageMessageBody *)msgBody);
NSLog(@"大图remote路径 -- %@" ,body.remotePath);
NSLog(@"大图local路径 -- %@" ,body.localPath); // // 需要使用sdk提供的下载方法后才会存在
NSLog(@"大图的secret -- %@" ,body.secretKey);
NSLog(@"大图的W -- %f ,大图的H -- %f",body.size.width,body.size.height);
NSLog(@"大图的下载状态 -- %lu",body.downloadStatus);


// 缩略图sdk会自动下载
NSLog(@"小图remote路径 -- %@" ,body.thumbnailRemotePath);
NSLog(@"小图local路径 -- %@" ,body.thumbnailLocalPath);
NSLog(@"小图的secret -- %@" ,body.thumbnailSecretKey);
NSLog(@"小图的W -- %f ,大图的H -- %f",body.thumbnailSize.width,body.thumbnailSize.height);
NSLog(@"小图的下载状态 -- %lu”,body.thumbnailDownloadStatus);


16.后端该如何操作用户上麦

后端无法直接控制让谁上麦,所以只能通过发送CMD消息的方式来和移动端进行交互,移动端根据逻辑指令去操作

17.使用[[EMClient sharedClient].chatManager ackConversationRead:_conversation.conversationId completion:nil];将消息置为已读,但是还是有未读数

[[EMClient sharedClient].chatManager ackConversationRead:_conversation.conversationId completion:nil]; —- 这个方法是发送会话已读消息,将通知服务器将此会话未读数置为0,而将消息置为已读是本地操作,可以使用方法:
1).[[EaseIMKitManager shared] markAllMessagesAsReadWithConversation:_conversation];
2). [conversation markMessageAsReadWithId:message.messageId error:nil];
3).[conversation markMessageAsReadWithId:message.messageId error:nil];
注意:方法1是EaseIMKitManager调用的,方法2、3是EMConversation调用的

18.聊天页面头像设置圆角失败
如果要设置聊天页面头像的圆角值,需要先设置avatarType为圆形才会生效,如果想要设置为圆形,则直接给图片宽度的一半即可


19.调用getGroupSpecificationFromServerWithId获取群组详情失败,失败的原因 --- you have no permission to do this, group member permission is required

出现此问题的原因是当前用户不在群组内,获取群组详情必须是群组成员才有权限,如果因为场景特殊的话,可以使用rest接口获取。

20、如何将附件保存在自己的服务器上

1.项目中搜索:isAutoTransferMessageAttachments,将属性值改为no
2.用户上传文件完成后,不建议用户直接使用remotePath,而是使用ext扩展来存放文件链接.



1 个评论

收藏!!!

要回复文章请先登录注册