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

avatar
Alexander Khitev
7 апреля 2018 в 21:47
401
1
1

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

Источник

Ответы (1)

avatar
Alexander Khitev
8 апреля 2018 в 17:35
2

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