我正在Xamarin.iOS应用程序上实现Sendbird,并且已经在OnMessageReceived处理程序上接收到消息。
但是我无法接收推送通知,GetPendingPushToken()始终返回null,因此在RegisterAPNSPushTokenForCurrentUser()方法中,我只传递了带有设备令牌的字符串。并在SendBird仪表板上注册用户令牌,如下所示:
“ 05d0c16a 52328ef2 973b29bb 91556ed6 59dcb340 321dc3e6 b0842c20
6e5190d2”。
我注意到,在.NET SDK中,我无权访问iOS SDK中可用的方法registerDevicePushToken(),并且示例中的方法是在didRegisterForRemoteNotificationsWithDeviceToken()方法内实现的。
APNS已在SendBird仪表板上正确设置,并且我已经从另一个API在设备上收到推送通知。
最佳答案
SendBird .NET SDK提供了两种推送注册方法,因为它可以同时在Android和iOS中使用。
Android:RegisterFCMPushTokenForCurrentUser
iOS:RegisterAPNSPushTokenForCurrentUser
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.
}
});
});
关于ios - Sendbird不接收推送通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52285618/