From b469805b2d0c9b23ca020cf9356ff137205f856c Mon Sep 17 00:00:00 2001 From: 464027401@qq.com <464027401@qq.com> Date: 星期一, 27 九月 2021 10:22:10 +0800 Subject: [PATCH] 修复来点页面重复呼叫时alert位置不对问题 --- HDLLinPhoneSDK(OC)/HDLLinPhoneSDK/HDLLinPhoneSDK.m | 86 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 72 insertions(+), 14 deletions(-) diff --git "a/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinPhoneSDK.m" "b/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinPhoneSDK.m" index 4befa5a..75db80f 100644 --- "a/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinPhoneSDK.m" +++ "b/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinPhoneSDK.m" @@ -13,7 +13,7 @@ #import "HDLLPOnMonitorViewController.h" @interface HDLLinPhoneSDK() - +@property (strong, nonatomic) HDLLinphoneIntercomVC* presentingIntercomVC;//褰撳墠灞曠ず鐨勬潵鐐规帶鍒跺櫒锛岀敤浜庡瓨鏀炬鍦ㄥ睍绀虹殑鏉ョ偣鎺у埗鍣紝閬垮厤閲嶅寮瑰嚭鐣岄潰 @end @implementation HDLLinPhoneSDK @@ -70,18 +70,19 @@ if (state == LinphoneCallIncomingReceived) { [self.hdlLinphoneCallDelegate onIncomingCall:userName]; if(self.IsAutoJumpCallView){ -// NSString *callId=[NSString stringWithFormat:@"%@",[notif.userInfo objectForKey:@"callID"]]; -// BOOL hasVideo=(BOOL)[notif.userInfo objectForKey:@"hasVideo"]; + - HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init]; -// vc.CallId=callId; - vc.hasVideo=YES; - vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; - vc.modalPresentationStyle = UIModalPresentationFullScreen; -// self.IntercomVC=vc; - [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ +// HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init]; +//// vc.CallId=callId; +// vc.hasVideo=YES; +// vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; +// vc.modalPresentationStyle = UIModalPresentationFullScreen; +//// self.IntercomVC=vc; +// [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ +// +// }]; - }]; + [self gotoHDLLinphoneIntercomVC:nil]; } } } @@ -114,16 +115,73 @@ // NSString *callId=[NSString stringWithFormat:@"%@",[notif.userInfo objectForKey:@"callID"]]; // BOOL hasVideo=(BOOL)[notif.userInfo objectForKey:@"hasVideo"]; +// NSLog(@"椤跺眰瑙嗗浘锛�%@",[HDLLinPhoneCommon topMostController]); + + if ([HDLLinPhoneCommon rootPresentVCContent:[HDLLinphoneIntercomVC class]]||[HDLLinPhoneCommon rootPresentVCContent:[HDLLPOnMonitorViewController class]]) { + if ([[HDLLinPhoneCommon topMostController] isKindOfClass:[UIAlertController class]]) { + NSLog(@"椤跺眰瑙嗗浘鏄棰戦�氳瘽椤�"); + __weak typeof(self) weakSelf = self; + + [[HDLLinPhoneCommon topMostController] dismissViewControllerAnimated:NO completion:^{ + UIViewController *topVC=[HDLLinPhoneCommon topMostController]; + if ([topVC isKindOfClass:[HDLLPOnMonitorViewController class]]) { + [topVC dismissViewControllerAnimated:NO completion:^{ + [weakSelf toLinphoneIntercomVC:titleName]; + }]; + }else if ([topVC isKindOfClass:[HDLLinphoneIntercomVC class]]) { + [topVC dismissViewControllerAnimated:NO completion:^{ + [weakSelf toLinphoneIntercomVC:titleName]; + }]; + } + }]; + } +// UIViewController *topVC=[HDLLinPhoneCommon topMostController]; +// if ([topVC isKindOfClass:[HDLLinphoneIntercomVC class]]) { +// [topVC dismissViewControllerAnimated:NO completion:nil]; +// } + return; + } + [self toLinphoneIntercomVC:titleName]; + +// if (self.presentingIntercomVC) { +// __weak typeof(self) weakSelf = self; +// [self.presentingIntercomVC dismissViewControllerAnimated:NO completion:^{ +// NSLog(@"椤甸潰閫�鍑轰簡"); +// weakSelf.presentingIntercomVC=nil; +// [weakSelf toLinphoneIntercomVC:titleName]; +// }]; +// +// return; +// } +// NSLog(@"鎵ц鍒版垜浜�"); +// [self toLinphoneIntercomVC:titleName]; +// HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init]; +//// vc.CallId=callId; +// vc.hasVideo=YES; +// vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; +// if (titleName) { +// vc.titleName=titleName; +// } +// vc.modalPresentationStyle = UIModalPresentationFullScreen; +// self.presentingIntercomVC=vc; +// [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ +// +// }]; +} + +-(void)toLinphoneIntercomVC:(NSString*)titleName{ HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init]; // vc.CallId=callId; vc.hasVideo=YES; vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; - vc.titleName=titleName; + if (titleName) { + vc.titleName=titleName; + } vc.modalPresentationStyle = UIModalPresentationFullScreen; -// self.IntercomVC=vc; +// self.presentingIntercomVC=vc; [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ - + }]; } -- Gitblit v1.8.0