我目前正在为Windows Phone 8.1开发基于Cordova(版本4.0.0)的移动应用程序。
我从API Java-MPNS(来自notnoop的github)实现了Java代码,以便向我的设备发送通知。
当我将通知消息推送到MPNS时,我收到此错误:
HTTP / 1.1 400错误请求[内容长度:0,X-WNS-MSG-ID:50267BB8627BC17D,X-WNS-DEBUG-TRACE:DB5SCH101121935,严格传输 - 安全:max-age = 31536000 ; includeSubDomains,WWW-Authenticate:Bearer,Date:Thu,07 Jan 2016 09:13:01 GMT] org.apache.http.conn.BasicManagedEntity@1ab5b13
从 Windows Phone 8推送通知服务响应代码的文档中,此错误代码表示XML文档或通知URI格式错误。
这是我的通知URI:
这是XML文档(由Java类TileNotification中的Java-MPNS生成):
<?xml version="1.0" encoding="utf-8"?>
<wp:Notification xmlns:wp="WPNotification">
<wp:Tile>
<wp:Count>1</wp:Count>
<wp:Title>Demo App Windows</wp:Title>
<wp:BackContent>New notification</wp:BackContent>
</wp:Tile>
</wp:Notification>
当我从如何发送和接收Windows Phone 8的平铺通知的文档中比较此XML文档和XML文档时,我看不出任何差异或错误。关于我的通知URI,我认为链接是正确的。
但是,http://db3.notify.live.net和https://db5.notify.windows.com之间有什么区别?
是否有人已使用此API?你对如何解决这个问题有所了解吗?
答案 0 :(得分:0)
* .infote.live.net是一个MPNS频道URI,而* .notify.windows.com是一个WNS频道URI。您正在获取WNS频道URI(您的应用设置为使用WNS的AKA),但您正在尝试使用MPNS。 400是因为WNS希望您使用OAuth进行身份验证。
我会仔细检查你是否真的想要使用MPNS而不是WNS来购买新应用。 MPNS在这一点上被认为是遗产。如果您想将应用程序移植到Windows,请在某个时刻构建UWP,您需要切换到WNS。更多详细信息/指导可在此处找到:https://msdn.microsoft.com/en-us/library/windows/apps/dn642085(v=vs.105).aspx
如果您确实需要使用MPNS,请确保使用MPNS API来请求您的频道:https://msdn.microsoft.com/en-us/library/windows/apps/microsoft.phone.notification(v=vs.105).aspx,而不是WNS API:https://msdn.microsoft.com/en-us/library/windows/apps/hh465412.aspx。