C# 通过azure通知中心APN发送推送通知

C# 通过azure通知中心APN发送推送通知,c#,azure,xamarin,apple-push-notifications,azure-notificationhub,C#,Azure,Xamarin,Apple Push Notifications,Azure Notificationhub,我有一个Xamarin forms应用程序,在AppDelegate.cs文件中为IOS运行此代码 public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken) { Hub = new SBNotificationHub(WBUtility.ListenConnectionString, WBUtility.Noti

我有一个Xamarin forms应用程序,在
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设备发送通知?

如果要向现有用户发送通知,我建议在注册用户时使用通知中心标记。如果您没有用户和devicetokens之间的映射,您可以在用户登录时随时间追溯映射(如您所建议的)

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