Sinch: пользователь не принимает вызов в первый раз

Я реализовал 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.


person Alexander Khitev    schedule 07.04.2018    source источник


Ответы (1)


Это была моя ошибка, так как я инициализировал SinchManager (это менеджер, который управляет SINClient) только в MainTabBarController viewDidLoad(), после того как я начал инициализировать его в AppDelegate didFinishLaunchingWithOptions, все работает нормально.

person Alexander Khitev    schedule 08.04.2018