您好我正在为Windows Phone 8开发。我需要使用PHP发送和接收磁贴推送通知。我的设备上未收到磁贴推送通知。我收到下面给出的错误。谁能告诉我为什么我要面对这个问题?
错误:
HTTP / 1.1 200 OK缓存控制:私有服务器:Microsoft-IIS / 7.5 X-DeviceConnectionStatus:已连接X-NotificationStatus:已禁止X-SubscriptionStatus:活动X-MessageID:00000000-0000-0000-0000-000000000000 ActivityId: d4a926a3-345c-432f-9a96-2f9c62ce8013 X-Server:DB3MPNSM036 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET Date:Tue,01 Oct 2013 09:08:33 GMT Content-Length:0
我正在使用下面给出的代码:
HttpNotificationChannel pushChannel;
// The name of our push channel.
string channelName = "TileSampleChannel";
InitializeComponent();
// 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);
// Register for all the events before attempting to open the channel.
pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated);
pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred);
pushChannel.Open();
// Bind this new channel for Tile events.
pushChannel.BindToShellTile();
}
else
{
// The channel was already open, so just register for all the events.
pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated);
pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred);
// Display the URI for testing purposes. Normally, the URI would be passed back to your web service at this point.
System.Diagnostics.Debug.WriteLine(pushChannel.ChannelUri.ToString());
// MessageBox.Show(String.Format("Channel Uri is {0}",pushChannel.ChannelUri.ToString()));
}
void PushChannel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e)
{
Dispatcher.BeginInvoke(() =>
{
// Display the new URI for testing purposes. Normally, the URI would be passed back to your web service at this point.
System.Diagnostics.Debug.WriteLine(e.ChannelUri.ToString());
// MessageBox.Show(String.Format("Channel Uri is {0}", e.ChannelUri.ToString()));
});
}
void PushChannel_ErrorOccurred(object sender, NotificationChannelErrorEventArgs e)
{
// Error handling logic for your particular application would be here.
Dispatcher.BeginInvoke(() => MessageBox.Show(String.Format("A push notification {0} error occurred. {1} ({2}) {3}",e.ErrorType, e.Message, e.ErrorCode, e.ErrorAdditionalData)) );
}
答案 0 :(得分:0)
以下是MPNS docs对你所得到的回复的说法(200 OK,Suppressed,Connected,Active):
Push推送服务接收并删除了推送通知。如果通过在客户端应用程序中调用BindToShellTile或BindToShellToast未启用通知类型,如果在应用程序不在前台时发送原始通知,或者在应用程序固定的情况下发送了没有Tile的Tile通知,则会发生Suppressed状态开始。
我看到您确实致电BindToShellTile
,而您没有发送原始通知,因此可能最后一个选项适用 - a Tile notification was sent with no Tile for the application pinned to start
。