5

アプリケーションで 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 ) が既に含まれている場合、新しい登録を作成する代わりに、単にタグを更新する必要があることです。

ここに画像の説明を入力

4

0 に答える 0