我有一个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设备发送通知?
答案 0 :(得分:1)
如果要将通知发送给现有用户,建议您在注册用户时使用Notification Hub标签。如果您没有用户令牌和设备令牌之间的映射,则可以在用户登录时(如您建议的)随时间追溯映射。
因此,如果您的用户BobBarker在数据库29817中具有设备ID abcdef01234567890和唯一ID,则可以创建一个标签附加到用户的通知中心注册“ user_29817”。然后,当您要单独寻址该用户时,可以向通知中心发送请求,以向所有用户发送带有标签“ user_29817”的消息。