Push notification 应用程序重新安装后,通过pushsharp发送的Windows推送通知失败-设备订阅已过期

Push notification 应用程序重新安装后,通过pushsharp发送的Windows推送通知失败-设备订阅已过期,push-notification,windows-phone-8.1,windows-phone,pushsharp,wns,Push Notification,Windows Phone 8.1,Windows Phone,Pushsharp,Wns,PushSharp版本:版本2.2.1 问题描述 我正在使用pushsharp向windows phone app 8.1发送推送通知 我在windows phone上安装了该应用程序,并获得了一个频道URI。使用相同的通道URI,推送通知对我有效 然后我在windows phone上卸载并再次安装了该应用程序。这给了我一个更新的频道URI System.Web.HttpUtility.UrlEncode(DeviceToken); 使用更新的通道URI,推送通知失败,错误为:“设备订阅已过

PushSharp版本:版本2.2.1 问题描述

  • 我正在使用pushsharp向windows phone app 8.1发送推送通知

  • 我在windows phone上安装了该应用程序,并获得了一个频道URI。使用相同的通道URI,推送通知对我有效

  • 然后我在windows phone上卸载并再次安装了该应用程序。这给了我一个更新的频道URI

  • System.Web.HttpUtility.UrlEncode(DeviceToken);
    
  • 使用更新的通道URI,推送通知失败,错误为:“设备订阅已过期: PushSharp.Windows.WindowsPushService->”

  • 请让我知道是否有我做错的事情,因为在重新安装应用程序后通知失败 (即,使用新的通道URI)
示例代码

push.RegisterWindowsService(new WindowsPushChannelSettings("package name", "package security identifier", "client secret")); push.QueueNotification(new WindowsToastNotification() .AsToastText01("This is a test notification") .ForChannelUri("https://db5.notify.windows.com/?token=AwYAAADhaxGQuJHxAGCdCOJa+kyrZ012wjF19Zm+VfriKZVxKqM3Dt4kQz9t6EllMZHgiA4oE1uvij2wdiTwItmp7UUnGoAPp3hc9FnLkJqpckt1xQAux/wez++MVGaty0QKRNk="));
例外情况

“设备订阅已过期:PushSharp.Windows.WindowsPushService->新频道URI”


解决了这个问题。设备令牌在从angular UI传输到pushsharp应用程序时被解码为url。再次编码有助于获得实际的通道URI

System.Web.HttpUtility.UrlEncode(DeviceToken);