電話アプリでトースト通知を使用しています。アプリが誰かの電話で最初に起動されると、プッシュ通知 URL が取得され、それがデータベースに保存されるため、ユーザーに通知を送信できます。
テストでは、エミュレーターと HTC WP7 でのテストの両方を使用して、通知が見つかり、アップロードされました。
これでアプリケーションはストアにあり、通知 URL はサーバーに NULL として送信されます。アプリのダッシュボードでは、次のようになっています。
認証済みプッシュ通知の証明書がありません: 認証済みプッシュ通知の証明書
これが問題の原因になりますか? もしそうなら、どうすればこの証明書を取得できますか? これに関連するものはどこにも見つかりません。
以下はコード スニペットです。テストでは機能しましたが、ストアへの公開は常に NULL を返すためです。
private void BindChannel()
{
channel = HttpNotificationChannel.Find(channelName);
if (channel == null || channel.ChannelUri == null)
{
if (channel != null) DisposeChannel();
channel = new HttpNotificationChannel(channelName);
channel.ChannelUriUpdated += channel_ChannelUriUpdated;
channel.Open();
}
else
{
StorageSettings.StoreSetting("NotifyURL", channel.ChannelUri.AbsoluteUri);
}
SubscribeToChannelEvents();
if (!channel.IsShellTileBound) channel.BindToShellTile();
if (!channel.IsShellToastBound) channel.BindToShellToast();
string notificationUri = string.Empty;
if (StorageSettings.TryGetSetting<string>("NotifyURL", out notificationUri))
{
if (notificationUri != channel.ChannelUri.AbsoluteUri)
{
StorageSettings.StoreSetting("NotifyURL", channel.ChannelUri.AbsoluteUri);
}
}
else
{
if (channel.ChannelUri != null)
{
StorageSettings.StoreSetting("NotifyURL", channel.ChannelUri.AbsoluteUri);
}
}
}