我在我的应用程序中使用 Windows azure 通知中心向用户提供通知。下面是在通知中心注册设备的 API 代码。
var platform = registrationCall["platform"].ToString();
var installationId = registrationCall["instId"].ToString();
var channelUri = registrationCall["channelUri"] != null ?
registrationCall["channelUri"].ToString() : null;
var deviceToken = registrationCall["deviceToken"] != null ?
registrationCall["deviceToken"].ToString() : null;
string RegistrationID = registrationCall["RegistrationID"] != null ?
registrationCall["RegistrationID"].ToString() : null;
var userName = HttpContext.Current.User.Identity.Name;
RegistrationDescription registration = null;
AppleRegistrationDescription iosExistingRegistrationByDeviceToken = null;
string UserID = User.Identity.GetUserId().ToString();
var registrationFromHub = await hubClient.GetRegistrationsByChannelAsync(deviceToken, 100);
if (registrationFromHub.Count() >= 1)
{
iosExistingRegistrationByDeviceToken =
registrationFromHub.Where(x => x.RegistrationId == RegistrationID)
.SingleOrDefault() as AppleRegistrationDescription;
}
if (iosExistingRegistrationByDeviceToken != null)
{
iosExistingRegistrationByDeviceToken.Tags = new HashSet<string>() { updated tag list };
registration =
await hubClient.UpdateRegistrationAsync(iosExistingRegistrationByDeviceToken);
}
else
{
registration = await hubClient.CreateAppleNativeRegistrationAsync(deviceToken,tags);
}
我的设备将信息传递给这个 api 方法。我正在调用此方法来创建新注册以及更新现有注册。但它似乎不能正常工作。
下面的屏幕截图显示了具有相同 PNS(设备令牌)的重复条目。任何人都可以帮助我如何避免这种重复的条目。我想要的是如果通知中心已经包含设备令牌( PNS ),那么它应该简单地更新标签而不是创建新的注册。