En utilisant l'un des exemples d'application d'appel video fournis par Twilio ( VideoCallKitQuickStart ), j'essaie de triggersr un appel entrant en envoyant une notification VoIP à l'App. Mais l'application ne triggers pas d'appel entrant. J'ai également essayé de garder l'application ouverte pendant l'envoi d'une notification VoIP et l'application se bloque, en lançant l'exception ci-dessous
NSInvalidArgumentException: Tentative d'insertion de l'object de list de non-propriétés 'PKPushPayload: 0x16e44af0' pour la charge utile de key
Pourrait quelqu'un, s'il vous plaît aidez-moi ou pointez-moi dans la bonne direction sur la façon de triggersr un appel entrant dans l'App, quand une notification VoIP est reçue.
Ci-dessous mon code dans le file ViewController.swift
func pushRegistry(registry: PKPushRegistry!, didReceiveIncomingPushWithPayload payload: PKPushPayload!, forType type: Ssortingng!) { // Process the received push self.reportIncomingCall(uuid: UUID(), roomName: "testRoom", completion: nil) } func reportIncomingCall(uuid: UUID, roomName: Ssortingng?, completion: ((NSError?) -> Void)? = nil) { let callHandle = CXHandle(type: .generic, value: roomName ?? "") let callUpdate = CXCallUpdate() callUpdate.remoteHandle = callHandle callUpdate.supportsDTMF = false callUpdate.supportsHolding = true callUpdate.supportsGrouping = false callUpdate.supportsUngrouping = false callUpdate.hasVideo = true callKitProvider.reportNewIncomingCall(with: uuid, update: callUpdate) { error in if error == nil { NSLog("Incoming call successfully reported.") } else { NSLog("Failed to report incoming call successfully: \(error?.localizedDescription).") } completion?(error as? NSError) } }
Twilio développeur évangélist ici.
Je ne suis pas particulièrement bon avec iOS, mais en PKPushRegistryDelegate
un coup d'oeil à la documentation de PKPushRegistryDelegate
il semble que votre définition de la fonction pushRegistry
ne soit pas correcte.
CA devrait etre
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType)
C'est-à-dire, didReceiveIncomingPushWith
plutôt que didReceiveIncomingPushWithPayload
.
Sinon, cela a-t-il quelque chose à voir avec le fait que vous avez forType
to Ssortingng
?
Swift 3.0
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) { NSLog("pushRegistry:didReceiveIncomingPushWithPayload:forType:") if (type == PKPushType.voIP) { print(payload.dictionaryPayload) VoiceClient.sharedInstance().handleNotification(payload.dictionaryPayload, delegate: self) } }
Et s'il vous plaît, ne modifiez pas datatables utiles sans les modifier pour que le SDK puisse extraire les informations d'appel entrant de la charge utile afin que le SDK puisse notifier l'application avec les appels entrants