VOIP呼叫断开后如何closuresCallkit屏幕
我试图删除callkit屏幕,一旦我的VoIP呼叫断开源或目的地。
我用这个代码
CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]]; CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()]; requestTransaction:[CXTransaction transactionWithActions:nil completion:completion]];
但是它并没有closurescallkit。 任何人都可以帮我解决这个问题吗?
您必须将您的CXTransaction
与CXEndCallAction
传入您的requestTransaction
。
首先在initWithCallUUID
你必须传递你当前的呼叫NSUUID
。 然后你可以在你的CXCallController
上调用requestTransaction
并把[CXTransaction transactionWithActions:@[endaction]
放入它,而不是像你那样。
CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]]; // your current call UUID CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()]; [callController requestTransaction:[CXTransaction transactionWithActions:@[endaction]] completion:completion];
你可以在通话断开方法中使用下面这个方法。
@property (nonatomic, strong) CXCallController *callKitCallController; - (void)performEndCallActionWithUUID:(NSUUID *)uuid { if (uuid == nil) { return; } CXEndCallAction *endCallAction = [[CXEndCallAction alloc] initWithCallUUID:uuid]; CXTransaction *transaction = [[CXTransaction alloc] initWithAction:endCallAction]; [self.callKitCallController requestTransaction:transaction completion:^(NSError *error) { if (error) { NSLog(@"EndCallAction transaction request failed: %@", [error localizedDescription]); } else { NSLog(@"EndCallAction transaction request successful"); } }]; }