Я прочитал несколько других сообщений, таких как этот: iOS : Не удалось получить события исходящего вызова в CallKit. Решение неизменно состоит в том, чтобы убедиться, что ссылка на объект CXCallObserver является надежной, чтобы она не исчезла до того, как она понадобится. Я считаю, что я сделал это и все еще имею проблему. Я использую Objective-C, SDK 11.3; код строится нормально, никаких ошибок или сбоев не происходит. Метод callChanged просто никогда не срабатывает. Любые идеи?
Вот мой код:
CXCallObserverDelegate.h: (Не знаю, зачем мне нужно было создавать это самому, но мой код не будет собираться без него. Однако, когда я это делаю, я получаю предупреждение о том, что «Повторяющееся определение игнорируется». Не похоже на это должна быть проблема, но может быть?).
#import <CallKit/CXCallObserver.h>
#import <CallKit/CXCall.h>
@protocol CXCallObserverDelegate
- (void)callObserver:(CXCallObserver *)callObserver
callChanged:(CXCall *)call;
@end
MyViewController.h:
#import "CXCallObserverDelegate.h"
@interface MyViewController: MixpanelTrack <OtherDelegate,AnotherDelegate,CXCallObserverDelegate>
{ … }
MyViewController.m:
#import <CallKit/CXCallObserver.h>
#import <CallKit/CXCall.h>
@property (atomic, strong) CXCallObserver *callObserver;
-(void)viewDidLoad {
[super viewDidLoad];
[self launchCallObserver];
}
-(void) launchCallObserver {
CXCallObserver *callObserver = [[CXCallObserver alloc] init];
[callObserver setDelegate:self queue:nil];
self.callObserver = callObserver;
}
-(void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
if (call.hasConnected) {
[TSMessage showNotificationWithTitle:@“I never see this“ type:TSMessageNotificationTypeSuccess];
} else if (call.hasEnded) {
[TSMessage showNotificationWithTitle:@“I never see this either“ type:TSMessageNotificationTypeSuccess];
}
}
Я делаю звонки программно через свое приложение с помощью:
[[UIApplication sharedApplication] openURL:phoneUrl];
CXCallObserver
. AppDelegate корректно обрабатывает все события вызовов. - person Oleg   schedule 07.03.2019