通过天蓝色的通知中心APNS发送推送通知

时间:2018-11-13 14:36:18

标签: c# azure xamarin apple-push-notifications azure-notificationhub

我有一个Xamarin表单应用,该应用在AppDelegate.cs文件中为IOS运行此代码

 public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
        {
            Hub = new SBNotificationHub(WBUtility.ListenConnectionString, WBUtility.NotificationHubName);

            Hub.UnregisterAllAsync(deviceToken, (error) => {
                if (error != null)
                {
                    System.Diagnostics.Debug.WriteLine("Error calling Unregister: {0}", error.ToString());
                    return;
                }

                NSSet tags = null; // create tags if you want
                Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => {
                    if (errorCallback != null)
                        System.Diagnostics.Debug.WriteLine("RegisterNativeAsync error: " + errorCallback.ToString());
                });
            });


}

因此,看起来这段代码只是在通知中心上注册了设备,这很好,但是我想向各个用户发送通知。该文档在目标c中显示了我不理解的代码。基本上,我认为每次用户在客户端上登录我的应用程序时,我都应该获取他的设备令牌并将其映射到后端的用户名,但是我不知道这是否是正确的方法。那么,如何将用户映射到已注册的ios设备,然后向用户已登录的所有已注册的ios设备发送通知?

1 个答案:

答案 0 :(得分:1)

如果要将通知发送给现有用户,建议您在注册用户时使用Notification Hub标签。如果您没有用户令牌和设备令牌之间的映射,则可以在用户登录时(如您建议的)随时间追溯映射。

因此,如果您的用户BobBarker在数据库29817中具有设备ID abcdef01234567890和唯一ID,则可以创建一个标签附加到用户的通知中心注册“ user_29817”。然后,当您要单独寻址该用户时,可以向通知中心发送请求,以向所有用户发送带有标签“ user_29817”的消息。