2017-07-25 25 views
1

発信元または宛先によってvoipコールが切断されると、コールキット画面を削除しようとしています。VOIPコールが切断された後にCallkit画面を閉じる方法

私はこのコード

CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]]; 
CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()]; 
requestTransaction:[CXTransaction transactionWithActions:nil completion:completion]]; 

を使用しかし、callkitを閉じるように機能していません。誰も私がこの問題を解決するのに役立つことができますか?

答えて

0

CXTransactionCXEndCallActionrequestTransactionに渡す必要があります。

まずはinitWithCallUUIDで、現在の電話番号NSUUIDを渡す必要があります。その後、CXCallControllerrequestTransactionと電話し、nilの代わりに[CXTransaction transactionWithActions:@[endaction]nilの代わりに渡すことができます。

0

このメソッドは、コール切断メソッドで使用できます。

@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"); 
     } 
    }]; 
}