iOS 后台只要保持长连接 可以收到实时视频与语音的通知已解决
今天收个苹果客服电话 说在后台无法收到实时语音的通知 。
然后看了一下代码 原来环信把后台实时语音直接给kill掉了 然后自己就写了个本地通知 , 可是 点击通知的话 搞的emcallSession这个实例一直为空 无法进行通话。 然后和客服沟通一下 , 他说是也是本地通知, 但是直接跳到主界面 把call close掉 。
我怕被拒。
其实问题很简单 ,只需要判断下miancontroller, 就可以在后台收到实时语音与视频的通知 点进去还是call 界面。 然后就可以拒接和接受了。
然后看了一下代码 原来环信把后台实时语音直接给kill掉了 然后自己就写了个本地通知 , 可是 点击通知的话 搞的emcallSession这个实例一直为空 无法进行通话。 然后和客服沟通一下 , 他说是也是本地通知, 但是直接跳到主界面 把call close掉 。
我怕被拒。
其实问题很简单 ,只需要判断下miancontroller, 就可以在后台收到实时语音与视频的通知 点进去还是call 界面。 然后就可以拒接和接受了。
没有找到相关结果
已邀请:
2 个回复
[已注销]
身起白马呀 走三关
首先在mianviewcontroller 定义
@property (strong, nonatomic) CallViewController *callController;
@property (strong, nonatomic) EMCallSession *callSession;
在ChatdemoHelper.m 找到EMCallManagerDelegate 代理方法
以次向下的几个方法中判断mian.callViewController
完了之后 在appdeldegate.m找到这个方法
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (_mainController) {
[_mainController didReceiveLocalNotification:notification];
}
}
然后就可以找到 didReceiveLocalNotification: mian里的这个方法
需要改的地方我在下面图片中 因为还有其它的本地通知 用来区分
图片挂掉了 下面还有一个else
ChatViewController *chatViewController = nil;
NSString *callChatter = userInfo[kwithCallChatter];
if ([callChatter isEqualToString:@"call"]) {
self.callController=[[CallViewController alloc]initWithSession:self.callSession isCaller:NO status:NSLocalizedString(@"call.finished", "Establish call finished")];
self.callController.modalPresentationStyle = UIModalPresentationOverFullScreen;
[self presentViewController:self.callController animated:NO completion:nil];
}else{
NSString *conversationChatter = userInfo[kConversationChatter];
EMChatType messageType = [userInfo[kMessageType] intValue];
后面的我就不写啦 太长了 都一样