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传递给这个用于Windows的c#后端代码时,我收到通知失败异常。
答案 0 :(得分:1)
我在我的项目中使用最新版本的PushSharp(版本3.0)向Windows Phone设备发送Toast通知,它对我来说很好。我通过上面的代码注意到您使用的是旧版本的PushSharp软件包,this tutorial提供了一个新的3.0版本。
您可以使用该最新程序包向Windows手机设备发送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和客户端Secrete。要获取这些值,您的应用必须在Store Dashboard中注册。这将为您提供云服务在使用WNS进行身份验证时使用的应用凭据。您可以查看以下nuget上的步骤1-3,了解有关如何完成此操作的详细信息。 (请注意,在上面的链接中,它指出您必须使用应用程序的身份编辑appManifest.xml文件,我没有执行此步骤,只需确保正确设置Windows Phone应用程序以接收Toast通知,此{ {3}}将有助于此。
希望这有帮助。