我在我的iOS应用程序中使用PushKit和CallKit来发送和接收电话。 我的问题是,当应用程序被杀死并且我接到电话时,didReceiveIncomingPushWith
被调用,我使用以下行显示本机呼叫屏幕
provider.reportNewIncomingCall(with: currentCallID, update: update, completion: { error in })
但是一旦调用此线路并出现本机呼叫屏幕,如果呼叫者取消呼叫,则永远不会再次调用didReceiveIncomingPushWith
。
奇怪的是,如果我评论这行
provider.reportNewIncomingCall(with: currentCallID, update: update, completion: { error in })
didReceiveIncomingPushWith
被完美地称为。
有人有任何解释/解决方案吗?
编辑
我正在使用打开套接字的 XMPP 服务器,以防我以它有效的方法关闭didReceiveIncomingPushWith
套接字(但会导致另一个我无法回答的问题,因为连接丢失(。
每当您取消呼叫/终端时,请始终调用并告诉系统调用已使用此方法更改了他的状态。
目标-C
[provider reportCallWithUUID: currentCallID endedAtDate:endingDate reason:(CXCallEndedReasonDeclinedElsewhere)];
迅速
provider.reportCall(with: currentCallID, endedAt: endingDate, reason: .declinedElsewhere)