Sendbird не получает push-уведомления - PullRequest
0 голосов
/ 12 сентября 2018

Я реализую Sendbird в приложении Xamarin.iOS и уже получаю сообщения на обработчике OnMessageReceived .

Но я не могу получать push-уведомления, GetPendingPushToken () всегда возвращает ноль, поэтому в методе RegisterAPNSPushTokenForCurrentUser () я просто передаю строку с токен устройства . И регистрирует токен пользователя на панели инструментов SendBird так:

"05d0c16a 52328ef2 973b29bb 91556ed6 59dcb340 321dc3e6 b0842c20 6e5190d2" .

Я заметил, что в .NET SDK у меня нет доступа к методу registerDevicePushToken () , который доступен в iOS SDK и в примерах реализован внутри didRegisterForRemoteNotificationsWithDeviceToken () метод.

APNS правильно настроен на информационной панели SendBird, и я уже получаю push-уведомление на устройстве от другого API.

1 Ответ

0 голосов
/ 14 сентября 2018

SendBird .NET SDK предоставляет два метода принудительной регистрации, поскольку его можно использовать как в Android, так и в iOS.

Android: Регистрация FCMPushTokenForCurrentUser

iOS: Зарегистрировать APNSPushTokenForCurrentUser

SendBirdClient.Connect(userId, (User user, SendBirdException e) => {
    if (e != null) {
        // Error.
        return;
    }

    if (SendBirdClient.GetPendingPushToken() == null) return;

    // For Android
    SendBirdClient.RegisterFCMPushTokenForCurrentUser(SendBirdClient.GetPendingPushToken(), (SendBirdClient.PushTokenRegistrationStatus status, SendBirdException e1) => {
        if (e1 != null) {
            // Error.
            return;
        }

    if (status == SendBirdClient.PushTokenRegistrationStatus.PENDING) {
            // Try registration after connection is established.
        }    

    });

    // For iOS
    SendBirdClient.RegisterAPNSPushTokenForCurrentUser(SendBirdClient.GetPendingPushToken(), (SendBirdClient.PushTokenRegistrationStatus status, SendBirdException e1) => {
        if (e1 != null) {
            // Error.
            return;
        }

    if (status == SendBirdClient.PushTokenRegistrationStatus.PENDING) {
            // Try registration after connection is established.
        }

    });
});
...