3

我们正在尝试使用文档 How to: Set Up a Notification Channel for 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 属性为空。示例代码在此处崩溃,因为它假定 ChannelUri 属性不为空。

在这两种情况下都不会触发 ErrorOccurred 事件。

我怎么解决这个问题?这个问题是因为微软服务器还是其他什么?

提前致谢

编辑 等待重播,十天后我遇到了空 uri 问题,谁能告诉我如何在某个时候解决这个问题 MSPN 服务器给 chanalk uri ans 不是我的意思是某个时候它给空引用异常。微软在做什么?

4

3 回答 3

1

如果我没有出错,www.contoso.com 这是一个示例 URI,用于演示您需要放置自己的服务器 URL 地址,但根据我的经验,我从不以这种方式使用。我更喜欢把

myChannel = new HttpNotificationChannel("MyChannel");

看这个例子(它是西班牙语的),但是代码非常清楚你需要做什么来设置推送通知客户端和服务。

我希望我对你有所帮助。

于 2013-03-27T20:20:11.380 回答
0

HttpNotificationChannel根据文档,我认为问题在于您正在使用经过身份验证的 Web 服务的构造函数。

相反,你应该使用只接受一个参数的构造函数,你可以在这个例子中检查

/// 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 手机开发的开发者帐户订阅,您是否开发者解锁了您的手机,

诺鲁尔。

于 2013-03-28T06:54:42.700 回答