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。 任何人都可以帮我解决这个问题吗?

您必须将您的CXTransactionCXEndCallAction传入您的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"); } }]; } 
Interesting Posts