我正在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/

10-08 23:41