Sendbird не получает push-уведомления
Я реализую 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 ответ
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.
}
});
});