我正在Xamarin.iOS应用程序上实现Sendbird,并且已经在 OnMessageReceived 处理程序上接收到消息。
但是我无法接收推送通知, GetPendingPushToken()始终返回null,因此在 RegisterAPNSPushTokenForCurrentUser()方法中,我只是传递了一个字符串带有设备令牌。并在SendBird仪表板上注册用户令牌,如下所示:
“ 05d0c16a 52328ef2 973b29bb 91556ed6 59dcb340 321dc3e6 b0842c20 6e5190d2”。
我注意到,在 .NET SDK 中,我无权访问 iOS SDK中可用的方法 registerDevicePushToken() 和示例中的示例是在 didRegisterForRemoteNotificationsWithDeviceToken()方法中实现的。
已在SendBird仪表板上正确设置了APNS,并且我已经从另一个API在设备上收到推送通知。
答案 0 :(得分:0)
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.
}
});
});