Sendbird无法接收推送通知

时间:2018-09-11 23:55:47

标签: ios xamarin push-notification xamarin.ios sendbird

我正在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在设备上收到推送通知。

1 个答案:

答案 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.
        }

    });
});