问题描述
详细情况如下:1. 在application:didFinishLaunchingWithOptions:launchOptions已调用以下方法[[EaseMob sharedInstance] registerSDKWithAppKey:AppKey apnsCertName:CertName otherConfig:nil];[[EaseMob sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];2. 用户已成功登陆过并设置了自动登陆3. 已经继承了EMChatManagerDelegate接口并进行了注册[[EaseMob sharedInstance].chatManager removeDelegate:self];[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];但当其它客户端发送加入群组请求时didReceiveApplyToJoinGroup:groupname:applyUsername:reason:error:不会被调用。但控制台里会输出如下信息:RECV: <message from='95190#beiqizhijia_admin@easemob.com' to='95190#beiqizhijia_13752450315@easemob.com' id='130700131203809768' type='chat'><body>{"from":"18222954671","to":"13752450315","bodies":[{"action":"applyAction","type":"cmd"}],"ext":{"groupId":"130681715021578696","content":"yyyyy"}}</body><delay xmlns='urn:xmpp:delay' stamp='2015-11-20T05:03:15.692Z'/></message>SEND: <message to="95190#beiqizhijia_admin@easemob.com" id="130700131203809768"><received xmlns="urn:xmpp:receipts" id="130700131203809768"/></message>看样子服务器已经把消息发送到手机端了,但不知道为什么代码没有收到通知。
解决方案
回调所在的类没有初始化吧,你写在appdelegate里试试
解决方案二:
回调所在的类在[[EaseMob sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];之后就初始化了
解决方案三:
你先把这个回调函数写在appdelegate中,看看是否调用协议:IChatManagerDelegate代理:[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil]; //接收到入群申请- (void)didReceiveApplyToJoinGroup:(NSString *)groupId groupname:(NSString *)groupname applyUsername:(NSString *)username reason:(NSString *)reason error:(EMError *)error
解决方案四:
回调函数写在appdelegate测试不起作用,控制台输出能看到确实收到消息了,但回调函数还是不会被调用
解决方案五:
您创建的这个群组是什么类型的?
解决方案六:
群组的创建是服务器端做的,是另一家公司。。。服务器端应该都是一样的,不区分手机平台。Android版的程序可以收到iOS端发出的加入群组请求并处理,iOS上只能收到消息,回调函数无法被调用。两端测试用的账号都是群组的创建者,群组里除了创建者就没有别人了。
解决方案七:
将方法写在根控制器下,并且将APP界面停留在根控制器下,注册代理,测试。
解决方案八:
请问写在根控制器下和写在AppDelegate下有什么区别吗?目前用AppDelegate无法收到环信的回调。
解决方案九:
经测试,回调方法在收到入群申请的时候,在appdelegate中是可以执行的,您按照前面评论回复步骤重新测试,需要登录成功,并走了代理方法,并在收到入群申请消息前初始化该类。
解决方案十:
试了很久还是不行。我把相关的部分抽出来单独写了个工程测试还是不行,哪位好心的大神能帮我看一下附件里的代码。这个账号创建了一个ID是132611255931241068的群组,但在其它人申请加入的时候客户端无法收到环信SDK的回调,但在控制台中可以看到确实收到了服务器发过来的消息。
解决方案十一:
检测一下群组ID。。。。
解决方案十二:
群组ID有什么问题吗?
解决方案十三:
加群的方法是怎么做的?
解决方案十四:
找到问题了,服务器端走的是消息透传,不会触发这个回调。多谢各位的帮助。