1)项目里面不需要环信SDK的太多功能,只是想要聊天和好友功能,其他都不用,那SDK一定要总是跟着更新么? a.环信SDK版本都是向前兼容并且稳定的,每次更新安卓只要更新.a包即可。 b.每次更新的版本都是稳定可靠性的,可以放心使用。 2)A用户通过Rest接口添加B为好友,B的客户端上好友列表上是否有? 对的,B那边也添加A为好友了。 3)黄某某(产品事业部)中,怎么把文字取出来? 用XML解析出来。 4)请问一下apns可以设置自定义声音么? 环信的推送不支持自定义,只可以设置开和关,不可以自定义声音,如果有需要可以使用第三方的推送。 5)iOS的demo中删除好友,聊天记录删除的只是一方好友的聊天记录么? 聊天记录不会删除,只是不在UI上显示出来了而已。 6)环信支持@功能么? 不支持,需要自己去实现。 7)发送消息的时候,没有网络,就会马上显示发送不成功,环信会不会像QQ那样有个自己去持续请求的时间呢? 没有,发送不成功就需要点击叹号重新发送。 8)一个环信应用可以注册多个推送证书吗? 可以注册多个推送证书。 9)环信发送图片那里是断点发送的?如果断开了,隔了一段时间,怎么重连? 图片发送不会断点续传,发送不成功会出现一个叹号,点击之后会重新发送。 10)如果没有注册过的账号去调用环信的登录接口,是不是也能连接聊天服务器? 不是,没有注册的用户不可以聊天。 11)在哪设置气泡高度 在sizeThatFits中设置。 12)环信怎么判断当前用户是否登陆? 环信不关注用户是否登录,类似微信一样,就算不在线也可以推送,只可以通过Rest在获取好友详情的时候,看到好友是online还是offline。 13)用户在登录情况下后台显示是有证书的,是不是已退出账号后证书名称在后台就显示为空了?对的,登陆的时候在后台会显示,退出之后就不显示了。 14)如何设置语音的时长限制? 这个需要开发者自己去设置,可以做一个用当前录制时间减去开始录制时间的判断。另外,音频部分已经完全剥离出来,SDK已经不做了,全部放到UI上供开发者自行控制操作。 15)发送消息后 actity一直在打转,是怎么回事? 需要在发送成功的回调方法里面刷新UI。 16)在服务端通过rest 删除的好友的话,环信的server 端会通知client端吗? 会的。 17)ios 可以重复建群吗?同样的三个人可以建多个群吗? 可以重复建群。 18)环信有类似微信朋友圈的模板? 目前还没有朋友圈的模板。 19)假如用户在两台ios设置上互相踢下线,要怎么更新最后登陆设置的推送设置? 在用户登录的时候,会把用的证书名发到后台,后台就会把证书和app当前用户绑定。 20)环信SDK支持离线消息吗? 支持的,只要用户在线,则直接把消息发送过去,ios端如果不在线则通过apns推送过去的,Android端如果不在线则聊天消息先保存在服务器上,等Android登录后直接推送过去。 21)如何设置让环信推送显示昵称而不是username呢? 设置方法[[EaseMob sharedInstance].chatManager setApnsNickname:@"APNS昵称"]。 22)apns上传的是什么文件? apns上传的是p12,并且需要密码。 23)环信的表情可以换成app的吗? 表情就是字符串替换。字符串环信没有定义, app里协定好了就可以。比如<:)> 这个字符串代表笑脸的图片,ui上截取了就替换就可以了。 对于环信来说,发的就是一个字符串。 24)怎么判断某条消息是别人发的还是自己发的? 用当前登录人的环信id和message的from做对比,如果一样,就是自己发的,反之,是对方。 25)[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginStateChange:) name:KNOTIFICATION_LOGINCHANGE object:nil]; 什么时候触发? 登录状态改变才会触发的通知:登录的时候,退出登录的时候,要退出的时候。 26)[[EaseMob sharedInstance].chatManager setIsAutoLoginEnabled:YES]; 这个应该写到哪里呢? 要想直接设置自动登录, 就在用户第一次登录成功之后设置。 27)要发透传信息,是不是先要把推送证书配置好 ? 发透传不用推送证书的,发推送才要证书的。 28)环信能自己设置心跳包么?180s有点长? 不可以。 29)环信的心跳包每180s发一次,怎么能保证实时接收对么发来的消息?是不是做了监听? 有监听回调方法。 30)语音怎么过段时间就播放不了?一直显示正在下载语言 ,稍后点击 ? demo的话, 如果是自己发送的话,就不要验证是否下载了,可以直接播放。如果是对方的话,要判断一下。 31)历史数据会有显示不完全的问题,怎么办? EMConversation类,有个loadAllMessages,调用该方法就可以获取到存入db的所有消息。 32)透传消息是不是有文字个数限制? 要求在30kb内, 没有个数限制。 33)怎么让未读消息处于监听模式呢? 未读消息数改变是有回调方法的--(void)didUnreadMessagesCountChanged。 34)群主能更改吗? 目前还不能,但将来会增加这个接口。 35)图片压缩比用户能调整么? 可以的,这个是iOS的压缩方法setCompressionQuality。 36)环信里面 android和ios 里面 message的扩展字段是通用的吗? 是的。 37)iOS和安卓都用的百度地图吗? 安卓是百度地图,iOS是苹果自己的地图。 38)手机端加了个消息免打扰功能,当webim 和手机端都登陆时可以通过这个功能设置手机是否接受信息么? 不可以,免打扰只是设置推送免打扰。 39)做了个测试,先用一个手机发了很多信息 ,然后用另一个手机登这个账号时,发现获取的聊天记录只有2条,而且还是以前该账号在该手机上发的? 消息记录保存到本地了,所以换个手机看不到。 40)不是给每个用户分配100m, 超过100M的数据能获取吗? 超过100M新的记录会顶掉老的记录。 41)环信 SDK支持模拟器吗?还是必须要用真机来测试? 支持,但是有些功能只能真机测试,比如推送,视频等。 42)IOS 中如何获取某个聊天组中的成员列表? 用 didFetchGroupOccupantsList方法获取。 43)环信这边语音能不能像微信那样:靠近耳朵的时候就听筒,远离耳朵的时候就扬声器播放啊?可以,要在- (void)proximitySensorChanged:(BOOL)isCloseToUser方法中设置。 44)能不能查看离线消息? 不能,只能查看离线消息未读数。 45)读取临时会话列表的方法,有的对象里username 是null,这是为什么? 创建会话的时候,是需要chatter 这个对象,chatter不能为null ,可以去打印下chatter,判断是否为空。 46)想删除客户端本地聊天记录,怎么办? 这是删除聊天记录的方法(参考): -(NSUInteger)removeConversationsByChatters:(NSArray*)chattersdeleteMessages:(BOOL)aDeleteMessages。 47)后台企业管理员可以更改吗? 后台企业管理员不能直接删除,邮箱也不可以直接修改,但是可以用新的邮箱再添加一个管理,然后把旧的管理员从这个org下移除掉。 48)上传图片后,返回的路径没办法下载图片,什么原因? 为了安全,下载过程中还要加入其他参数。不是只通过url就能下载的。需要参数(share-secret)。49)NSArray *buddyList = [[EaseMob sharedInstance].chatManager buddyList]; 获取到的都是空的,什么原因? "这个是取内存值,要得到detail,要去服务器获取,或者设置sdk自动获取。 // 登录成功后,自动去取好友列表// SDK获取结束后,会回调 复制代码12[[EaseMob sharedInstance].chatManager asyncFetchBuddyListWithCompletion:^(NSArray *buddyList, EMError *error) { } onQueue:nil]"50)图文混排怎么实现? 自定义的将图片,username以及想要显示的其他内容(通过扩展属性message.ext)一块显示到UI上。 51)播放语音的时候,传感器打开了,但是语音播放完后,传感器还处于打开状态,什么时候关闭的? 还要加上开启和关闭距离感应。 52)demo总是不弹出键盘,怎么办? 弹出键盘的快捷键是Command + k(可以百度下xcode6的模拟器弹出键盘的方法)。 53)IOS使用环信的demo进行扩展开发,上传后被拒 ,说是后台播放音乐的原因,这怎么办? 可以考虑去掉声音,如果要实现本地通知播放声音,再去调用localNotification的default sound就可以了。 54)一个群ID不能看成一个陌生人ID? 不能。 55)消息存到db里面去了 NSArray *chats = [weakSelf.conversation loadNumbersOfMessages:(currentCount + KPageCount) before:beforeTime];为什么没有拿出来呢? 这有根据时间和数量来分别获取的。打印一下数据。有时候来新消息了,取的依然是后多少条,数据就会不对了。这个api是没问题的。db可以取到说明已经存了数据。可能是跟取到的数量和时间有关系。 56)cmd消息,跟聊天的消息,不存在冲突么? 普通消息回调的方法跟这个不一样,所以不冲突,普通聊天得接收方法didReceiveMessage,cmd消息的接收方法didReceiveCmdMessage。 57)服务器返回登录失败,提示:logInfalse(null),error 已登录,请先调用logOff 。这是什么原因? 正在登陆的时候又发起了登陆请求。 58)聊天列表是本地保存的还是从服务器上获取的? 聊天列表都是保存在本地了,是sdk自动保存的。服务器上也有存聊天记录,但是客户端不能取服务器上得聊天记录。聊天记录在沙盒里,位置在/library/easemobDB 里面。 59)在哪修改环信logo(CFBundleDisplayName),如果是安卓要在哪儿改? 在InfoPlist.string 文件中更改CFBundleDisplayName;安卓中要在SplashAcitivity里面修改。 60)自动登录的回调会调用几次? 程序进入的时候调一次,会调用它的两个方法,willAutoLogin和didAtuoLogin。 61)环信的那个.a文件里面是不是有pjsip生成的库文件呢? 有的,不过还没有暴露出来。 62)iOS发送消息时,收到EMErrorServerTimeout 发送消息超时的报错。 网络状况良好,可能还有其他什么原因造成? 如果是偶尔的报错,是有可能的。因为客户端的网络本来就是一个不稳定的弱网络。用户看着感觉网络是良好的,但实际上会有各种临时性中断。 63)语音信息播放以后,未读标识消失,但是关掉页面,再次进入,还有未读提示,这个是否是个bug? 这个是通过扩展属性来判断的,播放之后,就修改掉,再一次进来的时候,根据这个值来判断是否播放过。 64)可以实现每条推送消息的昵称都自定义么? 环信下一步会支持自定义推送消息模板。每个app可以有自己特定的模板。但按照备注来推送,这个估计支持起来是有困难的。还没想好怎么支持。 65)接收本地通知的时候,通知消息前面显示的是环信id而不是nickname,怎么办? "NSString *title = message.from; if (message.isGroup) { NSArray *groupArray = [[EaseMob sharedInstance].chatManager groupList]; for (EMGroup *group in groupArray) { if ([group.groupId isEqualToString:message.conversationChatter]) { title = [NSString stringWithFormat:@""%@(%@)"", message.groupSenderName, group.groupSubject]; break; } } } NSString *title = message.from中拿到这个title 再去自己的服务器请求nickname,再显示到UI上。" 66) * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[XMPPManager networkChangedToNone]: unrecognized selector sent to instance 0x15db1ef0' 然后就崩溃了? 这个报错,一般是用到了环信2.1.3版本里的SDKLite包,后面的2.1.3r3版本有修复,遇到类似的问题,升级到2.1.3r3版本就可以解决了 67)环信ios的push, inhouse类型的app支持吗? inhouse应该是指企业证书的,这个sdk不关注,只要推送证书对应配套就可以推送。 68)点击播放语音的时候,一直显示正在下载,这个怎么解决?(message.downloadingAudio) 解决办法是发送方不做判断,点击之后直接播放,只在接收方做判断。 69)logininfo有时候为空,是怎么回事? 没有登陆。 70)删除好友后,好友仍然存在于好友列表中,这是为什么? 要先清除缓存,再刷新列表。 71)在登录失败的情况下,仍然进行其他操作,会出现什么提示信息? 会提示网络错误。 72)发送的消息内容在bubbleView上的哪里呀? EMChatTextBubbleView里面。 73)问下ios 自动重连不需要代码设置吗?只需要简单地监控一下吗? 自动重连不需要设置。 74)为什么添加好友用户搜索任何字符都可以搜索到呢? demo没有限制,搜什么都可以搜到,开发者可以自己设定一下。 75)环信是没有提供好友申请列表的接口,需要做本地数据保存是吧? 好友申请未处理,重启app服务器会再次给发过来。 76)使用环信sdk录制的语音是什么编码格式的? 现在的版本,音频部分已经从SDK中剥离出来了,SDK已经不做处理了,全部放到UI上供开发者自行处理了。不过录的时候是wmv,转换成amr传过去,接收时再转换过来。 77)消息记录保存的原理? sdk会保存所有消息,重启app获取的消息记录都是在缓存中的,要调用从db总获取消息记录的方法,加到缓存中,才能显示出来。 78)环信有木有可以获取所有未读消息的接口? 有获取未读消息数的接口,不能获取到所有的未读消息内容。 79)用户是按照环信的规范配置的, demo在xcode5.1上面也抱错? Xcode5现在不让提交项目了,必须用Xcode6运行。 80)ios推送可以自己设置Apns显示内容吗? 可以的,现在环信已经支持自定义推送内容了,可以支持:1、不显示详情:“alert”:“您有一条新消息” 2、显示详情:“alert”:“ApnsName:XXXXX” 3、自定义。可以参考下环信的相关自定义推送部分的文档。 81)显示详情那里,ApnsName为空时 后面的冒号能不能去掉? 环信目前已支持自定义推送内容。 82)ios推送字符长度有没有限制? 跟普通消息一样,30kb以内。另外,自定义的字段可以全部显示。 83)好友申请可以发推送消息么? 好友申请消息不能推送,好友申请未处理,下次登录的时候服务器会发给用户。 84)集成了环信最新的ios sdk的语音通话功能 更新的时候被拒了,因为用户这边需要后台通话的功能的 ,所以在工程设置中的后台打开了voico over ip,但是苹果不认可这样做? 不用开这个。或者和苹果解释下,说用到的地方。 85)做实时语音的时候调用- (EMCallSession *)asyncCallAudioWithChatter:(NSString *)chatter timeout:(NSUInteger)timeout error:(EMError **)pError;这个函数,报这个错误-[EMCallManager asyncCallAudioWithChatter:timeout:error:]: unrecognized selector sent to instance 0x7bea96e0(崩了)是什么原因? 要是用语音实时通话, 就导libEaseMobClientSDK.a这一个库就可以了(不能导2个库)。 86)环信消息推送,是本地推送,还是远程推送? ios长连接没断开是本地通知,断开了走apns。 87)iOS 文件在发送之后, 对方的接收到消息后, 对应的文件local路径是指什么? 这个时候文件是否已经存到对方沙盒内了吗? 对方接受到的时缩略图,原件需要点击查看,才能下载原件。 88)环信为什么没有@功能?未来有没有支持的计划? 有。不过还没排期。这个肯定也要做的,是个通用需求。 89)iOS环信信息下载后的文件无后缀,请问还需要什么处理吗? 不需要,发送的是什么,下载的就是什么。 90)服务端先发送的文本消息,然后ios端再发文本消息。收到的消息顺序是先收到ios端的然后在才收到服务端的。 后台发,这个应该发送效率问题,排序是按照消息接收时间。 91)勾选Audio and AirPlay后,上传App被AppStore拒绝。 不勾选这个,然后在本地推送里设置本地推送提示音。 92)直接通过app自己的服务器去登录环信,登录成功之后不能聊天是怎么回事? 必须通过客户端sdk登录才能聊天,客户端跟服务器之间没有长连接不能聊天。 93)环信SDK哪些数据做了本地储存的?群组列表也是存了的?加好友、加入群组之类的通知呢?im都存了,其他的都需要开发者自己处理。群组列表不是最新的,只是会报给,这个最好还是开发者自己存。加好友、加入群组之类的通知sdk不存,ui存了。 94)头像在哪个类里面设置? EMChatViewBaseCell。 95)IOS,只有退出登录,才算是不在线,对么? ios不在前台,就是不在线。但要注意进入到后台3分钟后才不在线,因为ios系统会在进入后台3分钟后,把应用的连接杀死。 96)目前不支持群聊语音电话? 目前是语音单聊。 97)安卓和ios 录音的格式分别是什么? 安卓是amr格式,wav格式。iOS5以前有明确的说明,不支持amr直接播放。之后就没有明确说明了。应该是也不支持。iossdk中 发送: wav->amr; 接收:amr - > wav,用libopencore这个库转的。另外,现在iOS端的语音部分已经全部从SDK剥离出来了,全部放到UI上供开发者自行处理。 98)为什么获取不到群组的owner? 获取与我有关的群组的时候只能看到群组ID,和群组名称,只有调用群详情的方法才能看到,调用群详情的方法,能看到描述和owner。 99)报错:imported from module ‘UIKit…’怎样改? 没有导入UIKit,#import100)一个消息发送失败后,使用asyncSendMessage重新发送,消息的timestamp怎么更新? 重新发送消息 ,是用的以前的时间,qq处理的也是用的以前的时间,sdk内部处理的时间。 101)ios的导航栏的颜色在哪改? [[UINavigationBar appearance] setBarTintColor:RGBACOLOR(78, 188, 211, 1)]; 102)iOS要实现一个群聊不播放提示音或者震动,只能开发者自己实现??还是像android那样有相应的接口? 不播放,就是不调用震动和音频就行了,要自己实现。 103)rest接口如果调用次数过大会报什么错? "会返回:503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。" 104)[self setupUIDemoDB] 这个是必须的吗? 不是。这个是demo中用到的第三方DB,存的是好友申请这一类的消息。不建议使用,可以自己写一个DB进行存储 105)在模拟器上登陆的时候会报这个错误,是怎么回事? 应该是用户名多敲了空格。 105)两个客户端,但是却是不同的应用,为了实现两者的通信,用了第一个的appkey,用户也都是在第一个app下注册的,但是由于推送证书要绑定app,所以第二个没有推送,请问怎么解决? 可以上传多套证书,两个应用之间通信只要保证是同一个appkey 就行, 如果是推送的话 ,要保证项目中的证书名称跟上传到后台的证书名称一致。 106)IOS删除所有聊天记录的方法是哪个? 复制代码123456789101112/*! @method @brief 删除所有会话对象 @discussion @param aDeleteMessages 是否删除这个会话对象所关联的聊天记录 @param append2Chat 是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。 @result 是否成功执行 */- (BOOL)removeAllConversationsWithDeleteMessages:(BOOL)aDeleteMessages append2Chat:(BOOL)append2Chat。107)用户发过来的语音消息,这边听过后,黄点(未读标识)不消失, 是怎么回事? "全局搜一下prepareMessageAudioModel这个函数 还有modelWithMessage,把 [[EaseMob sharedInstance].chatManager insertMessageToDB:chatMessage]; 换成[chatMessage?updateMessageExtToDB];" 108)[NSConcreteData AES256Decrypt]: unrecognized selector sent to instance XXX,怎么办? other link flags 设置-ObjC 注意大小写。 109)framework not found Metal for architecture armv7s 需要升级到xcode6。 110)SDK太大了,怎么办? SDK大不影响打包成ipa,打包出ipa安装包后,一般只会增加2MB左右。 111)SDK是否支持64位? 支持。 112)无法收到聊天消息? "接收聊天等回调,要注意以下几步骤: 1、声明实现IChatManagerDelegate,如: @interface EaseMobSDKAccountManager ()2、注册当前类接收回调 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil]; 3、实现对应回调方法,如: // 收消息的回调_x000D_-(void)didReceiveMessage:(EMMessage *)message{_x000D__x000D_}" 113)一条消息收到多次,为什么? "一般是由本类多次注册了回调导致,请确定以下方法只执行了一次 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil]; 并且在类析构时注销回调 -(void)dealloc{ [[EaseMob sharedInstance].chatManager removeDelegate:self]; " 114)无法收到好友请求,怎么办? 请确定接受好友请求的类是否初始化,并声明了IChatManagerDelegate,实现了注册回调和回调方法。 115)APP后台时无法收到推送,怎么办? 环信将notification分为两种,一种是本地通知,一种是apns。当您后台时,长连接还存在,会走didReceiveMessage方法,需要您自己维护本地通知(即LocalNotification)。 116)APP彻底关闭,无法收到推送? "用户可以通过以下几步检验自己的推送 1.首先需要用户上传APNS推送证书到环信管理后台。 2.在环信iOSSDK初始化时填写用户自己的证书名称。 3.注册推送。 4.真机登录环信im账号。 5.查看管理后台中,对应im账户下是否有用户刚刚写的证书名。(如果没有,请检查是否得到了deviceToken) 6.确定用户当前证书是否和自己的项目匹配。(开发证书与生产证书需要一一对应)" 117)环信 pod 上面的SDK是最新么? "通过Cocoapods下载地址 不包含实时语音版本SDK(EaseMobClientSDKLite),引用时 #importpod'EaseMobSDK', :git => 'https://github.com/easemob/sdk-ios-cocoapods.git' 包含实时语音版本SDK(EaseMobClientSDK),引用时 #importpod 'EaseMobSDKFull', :git => 'https://github.com/easemob/sdk-ios-cocoapods-integration.git'"
118)注册deviceToken回调出现error,注册推送失败errorCode = 3000?
这是配置有问题,还没有到环信。一般是profile文件问题,或者证书没有打开推送功能。 类似这个时候报的errorCode,可以百度解决,http://www.educity.cn/wenda/100742.html。
119)为什么设置EMPushNotificationOptions返回error 是nil,设置也不对?
EMPushNotificationOptions设置需要在您获取deviceToken成功后才能设置。请先确定deviceToken获取没问题。
120)为什么提交的APNS昵称和使用证书名后台看不到?
这两个也是需要用户确定了deviceToken正确获取后才可以。
121)项目中是否可以用其他推送,和环信推送是否有冲突?
没有冲突。
122)是不是可以用环信推广告之类的其他信息?
环信的推送主要为IM服务,如果有这些需求,建议开发者用专用的推送服务。
123)后台上传证书显示异常,怎么办?
异常一般是因为证书制作过程不对,或者密码输入有问题,密码为开发者导出证书时设置的密码。
124)证书不设置密码是否可用?
目前要求必须设置密码。
125)项目要提交了,想测下,如何操作?
打包时使用ad-hoc模式,可以打包出一个release版本的ipa,用这个测试即可。
126)如果开发者想按home键后立刻收到推送,如何处理?
因为这个时候用户还是长连接中,可以监听didReceiveMessage方法,之后开发者自己实现localNotification。
127)IOS做退出登录有请求超时的问题。
退出登陆时,真机时把isUnbind这个属性设为YES, 解除device_token绑定,如果出现退出解绑失败的情况,可能是没有网络。
128)群消息ios登录用户发群消息,android的登录用户收不到是什么原因?
处理方法:请提供下发送双方的log日志,和这个app的appkey,token,以及丢得消息的id,工作人员会进行排查。
129)把appkey下的所有用户全部设置成免打扰。有相关接口么?
不设置推送证书,如果设置了,删掉即可。
130)环信的SDK在xcode7上能用么?
目前的最新版本2.2.0已经支持。
131)自动登陆的状态什么时候设置为no,只有退出登陆才设置吗?
退出的时候自动就变成no了。
132)聊天室中头像和昵称的获取,现在有什么方案吗?
和群聊的头像昵称方案是一样的,可以参考:http://docs.easemob.com/doku.php?id=start:000quickstart:40nickna
133)1. 2.1.9版本的sdk.a包会有与fmpeg 冲突的情况,这个要怎么处理呀?2.他们用到了这个http://videojj.com/,视频播放的第三方?
如果用到了环信的实时语音库,同时也用到了其它第三方的库,就会冲突。
134)发实时语音 iOS 不走apns?
目前还不支持,现在实时语音是通过P2P直连或者Server relay。
网友评论