使用 Pushsharp 的 Windows 推送通知服务提供通知失败
Posted
技术标签:
【中文标题】使用 Pushsharp 的 Windows 推送通知服务提供通知失败【英文标题】:Windows push notification service using Pushsharp giving Notification Failure 【发布时间】:2015-08-03 07:43:44 【问题描述】:var push = new PushBroker();
push.OnNotificationSent += NotificationSent;
push.OnChannelException += ChannelException;
push.OnServiceException += ServiceException;
push.OnNotificationFailed += NotificationFailed;
push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired;
push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged;
push.OnChannelCreated += ChannelCreated;
push.OnChannelDestroyed += ChannelDestroyed;
push.RegisterWindowsPhoneService();
push.QueueNotification(new WindowsPhoneToastNotification()
.ForEndpointUri(new Uri(uri))
.ForOSVersion(WindowsPhoneDeviceOSVersion.Eight)
.WithBatchingInterval(BatchingInterval.Immediate)
.WithNavigatePath("/LandingView.xaml")
.WithText1("PushSharp")
.WithText2("This is a Toast"));
push.StopAllServices();
我正在使用 pushsharp nuget 包进行推送通知,并且在将 uri 传递给此 c# 后端代码的 Windows 时,我收到通知失败异常。
【问题讨论】:
@pushsharp : 有人可以帮忙吗? 【参考方案1】:我在我的一个项目中使用最新版本的 PushSharp(3.0 版)向 Windows Phone 设备发送 toast 通知,它对我来说工作正常。通过上面的代码,我注意到您使用的是旧版本的 PushSharp 包,nuget 提供了一个新的 3.0 版本。
您可以使用最新的软件包向 Windows Phone 设备发送 toast 通知。最新版本的 PushSharp 使用 WNS 而不是旧的 MPNS。
如果您转到我上面提供的 nuget get 链接并下载解决方案,您可以看到一些有关如何使用 WNS 为 windows phone 实现推送通知的示例。查看PushSharp.Test
项目(查找WNSRealTest.cs
文件)。
以下是如何向 Windows Phone 设备发送 Toast 通知的示例:
var config = new WnsConfiguration(
"Your-WnsPackageNameProperty",
"Your-WnsPackageSid",
"Your-WnsClientSecret"
);
var broker = new WnsServiceBroker(config);
broker.OnNotificationFailed += (notification, exception) =>
//you could do something here
;
broker.OnNotificationSucceeded += (notification) =>
//you could do something here
;
broker.Start();
broker.QueueNotification(new WnsToastNotification
ChannelUri = "Your device Channel URI",
Payload = XElement.Parse(string.Format(@"
<toast>
<visual>
<binding template=""ToastText02"">
<text id=""1"">0</text>
<text id=""2"">1</text>
</binding>
</visual>
</toast>
","Your Header","Your Toast Message"))
);
broker.Stop();
您可能注意到上面的WnsConfiguration
构造函数需要一个包名称、包SID 和一个客户端秘密。要获取这些值,您的应用必须在商店仪表板中注册。这将为您的应用程序提供凭据,您的云服务将在使用 WNS 进行身份验证时使用该凭据。您可以查看以下MSDN page 上的步骤 1-3,了解如何完成此操作的详细信息。 (注意在上面的链接中,它声明您必须使用您的应用程序的身份编辑您的 appManifest.xml 文件,我没有执行此步骤,只需确保您正确设置了 Windows 手机应用程序以接收 toast 通知,这@ 987654323@ 将提供帮助。
希望这会有所帮助。
【讨论】:
以上是关于使用 Pushsharp 的 Windows 推送通知服务提供通知失败的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PushSharp 为 Windows Phone 8 设置徽章值