3

ドキュメントの最新のコードを使用して、プッシュ通知をテストしようとしています。方法: Windows Phone の通知チャネルを設定する

public HttpNotificationChannel myChannel;
public void CreatingANotificationChannel()
{
  myChannel = HttpNotificationChannel.Find("MyChannel");

  if (myChannel == null)
  {
    myChannel = new HttpNotificationChannel("MyChannel","www.contoso.com");

    // An application is expected to send its notification channel URI to its corresponding web service each time it launches.
    // The notification channel URI is not guaranteed to be the same as the last time the application ran.
    myChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(myChannel_ChannelUriUpdated);

    myChannel.Open();
  }
  else // Found an existing notification channel.
  {
    // The URI that the application sends to its web service.
    Debug.WriteLine("Notification channel URI:" + myChannel.ChannelUri.ToString());
  }

  myChannel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(myChannel_HttpNotificationReceived);
  myChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(myChannel_ShellToastNotificationReceived);
  myChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(myChannel_ErrorOccurred);
}

HttpNotificationChannel.Find() が null を返す場合、新しいチャネルが開きますが、ChannelUriUpdated イベントはトリガーされません。

HttpNotificationChannel.Find() がチャネルを返す場合、ChannelUri プロパティは null です。ChannelUri プロパティが null ではないことを前提としているため、サンプル コードはここでクラッシュします。

どちらの場合も、ErrorOccurred イベントはトリガーされません。

どうすればこの問題を解決できますか? この問題は、Microsoft サーバーまたはその他の原因によるものですか?

よろしくお願いします

EDIT リプレイを待っています.10日後、null uriの問題に苦しんでいます.MSPNサーバーがchanalk uri ansを与える時間ではなく、null参照例外を与える時間を意味する. マイクロソフトは何をしていますか?

4

3 に答える 3

1

間違っていなければ、www.contoso.com は、独自のサーバー URL アドレスを配置する必要があることを示す URI の例ですが、私の経験では、そのように使用することはありません。私はちょうど置くことを好みます

myChannel = new HttpNotificationChannel("MyChannel");

この(スペイン語) を見てください。コードは、プッシュ通知クライアントとサービスを設定するために何をする必要があるかを非常に明確に示しています。

お役に立てば幸いです。

于 2013-03-27T20:20:11.380 に答える
0

documentationHttpNotificationChannelによると、問題は認証済み Web サービスのコンストラクターを使用していることだと思います。

代わりに、この例で確認できるように、パラメーターを 1 つだけ取るコンストラクターを使用する必要があります。

/// Holds the push channel that is created or found.
HttpNotificationChannel pushChannel;

// The name of our push channel.
string channelName = "ToastSampleChannel";

// Try to find the push channel.
pushChannel = HttpNotificationChannel.Find(channelName);

// If the channel was not found, then create a new connection to the push service.
if (pushChannel == null)
{
    pushChannel = new HttpNotificationChannel(channelName);
    ...
}

それが役に立てば幸い

于 2014-12-30T18:35:15.317 に答える
0

エミュレーターとはどのモバイルでテストしていますか? Windows Phone 開発用の開発者アカウントのサブスクリプションを持っていますか? 開発者がモバイルのロックを解除していましたか?

ヌール。

于 2013-03-28T06:54:42.700 に答える