Я реализовал Sinch
+PushKit
+CallKit
, все работает нормально, но есть один скрипт, который работает некорректно. Первый пользователь использует приложение и удаляет его из памяти устройства, второй пользователь звонит в первый раз, первый пользователь не принимает вызов, если второй пользователь сразу звонит во второй раз, первый пользователь принимает вызов (позже первый пользователь также принимает вызов). Если первый пользователь откроет приложение (то есть подключится к системе), первый пользователь больше не получит вызов. Как я могу это исправить?
инициализация клиента sinch
open func setup() {
guard sinch == nil else { return }
guard let userID = UserRealmManager().getUser()?.id else { return }
sinch = Sinch.client(withApplicationKey: key, applicationSecret: secret, environmentHost: host, userId: userID)
sinch?.delegate = self
sinch?.call().delegate = self
sinch?.setSupportCalling(true)
sinch?.enableManagedPushNotifications()
sinch?.setSupportPushNotifications(true)
sinch?.start()
sinch?.startListeningOnActiveConnection()
}
Обновление: я также обнаружил, что если перезагрузить iPhone, то звонки через CallKit начинают появляться через 2-4 минуты, я решил протестировать его на известных мессенджерах, таких как What's app и Telegram, и у них есть точно такое же поведение. Конечно, я думаю, что это нужно задать как дополнительный вопрос.
Мои устройства iPhone 6 и 7.