私のWP7アプリは、さまざまな種類のプッシュ通知を処理する必要があります。これらの一部は、アプリの実行中にのみ関連しますが、1つのタイプは、ユーザーにアプリを起動するためのプロンプトとして機能し、アプリの実行中に処理する必要があります。したがって、プッシュチャネルを開くと、コードはBindToShellToastを呼び出し、raw通知とtoast通知の両方を受信したときのイベントハンドラーを登録します。
if (!_pushChannel.IsShellToastBound)
{
_pushChannel.BindToShellToast();
}
_pushChannel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(pushChannel_HttpNotificationReceived);
_pushChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(pushChannel_ShellToastNotificationReceived);
認定要件を見ると、一般的なプッシュ通知だけでなく、特にトースト通知も有効/無効にできるようにするためのユーザー設定を提供する必要があるようです。Windows Phoneの特定のアプリタイプに関する追加要件を参照してください(要件6.2.1)
ユーザーは一般的なプッシュ通知を有効にする可能性がありますが、トースト通知を無効にする可能性があるため、アプリが実行されていないときに処理する必要があるタイプについて、サーバーは生の通知とトースト通知の両方を送信する必要があるようです。これにより、ShellToastNotificationReceivedイベントへの登録が無意味になります。私の考えはここで正しいですか?