C#学习教程:在WindowsPhoneSilverlight8.1上接收WNS推送通知我在package.appxmanifest:并将其添加到移动服务中心。为此,我删除了对MPNS使用的旧引用,并为WNS添加了以下内容:usingWindows.UI.Notifications;使用Windows.Networking.PushNotifications;使用Windows.UI.StartScreen;这导致了一种获取channelURI的新方法:publicstaticPushNotificationChannelCurrentChannel{get;私有集;}publicasyncstaticTaskUploadChannel(){boolnewChannel=false;varchannel=awaitWindows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();var设置=Windows.Storage.ApplicationData。当前.LocalSettings.Values;对象旧频道;settings.TryGetValue("channelURI",outoldChannel);if((oldChannelasPushNotificationChannel).Uri!=CurrentChannel.Uri){settings.Add("channelURI",CurrentChannel);=新频道真;}try{awaitApp.MobileService.GetPush().RegisterNativeAsync(channel.Uri);}catch(Exception异常){CurrentChannel.Close();HandleRegisterException(异常);}CurrentChannel.PushNotificationReceived+=CurrentChannel_PushNoti收到通知;返回新频道;}privatestaticvoidHandleRegisterException(Exceptionexception){MessageBox.Show("error-retrypushchannel");此外,我根据Microsoft更新信息删除了ID_CAP_PushNotification我没有收到频道我收到错误:应用程序该程序没有云通知功能(HRESULT异常:0x803E0110)解决方案搜索错误并找到此链接,这可以通过访问package.appxmanifest并启用Internet(客户端和服务器)来解决,如下面的答案所述。错误2然后,UploadChannel()函数应该起作用。但是,RegisterAPI调用awaitApp.MobileService.GetPush().RegisterNativeAsync(channel.Uri);导致服务器出现错误:消息='无法注册'mpns'平台。出现错误:“不支持的频道uri:”https://db3.notify.windows.com。...该错误是有道理的,但我不知道如何解决。Ekstra在服务器上,我可以使用URI订阅并接收通知。但不是客户端。这应该是什么?在客户端:理想情况下,要使用WNS,您应该从WMAppManifest.xml中删除所有对MPNS的引用,并将Windowsapp商店提供的信息添加到您的package.appxmanifest。我了解到您正在从WP8迁移到WP8.1。因此,在您的package.appxmanifest中,编辑代码,使其看起来像这样:注意:PhonePublisherId中的0是故意的。我不明白为什么,但当我不提供此类信息时,该应用程序无法运行。您正在执行通道uri请求权限:PushNotificationChannelchannel=awaitPushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();字符串channelUri=channel.Uri;您还应该在Package.appxmanifest中设置Internet(客户端和服务器)功能以进行检查。要在客户端接收通知,您应该按照此处所述拦截收到的通知:https://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj709907.aspx在服务器端:错误发生“不受支持的通道URI”,因为您在Azure服务器中对URI使用MPNS方法。请参阅此处了解使用WNS的正确方法:http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-windows-universal-dotnet-get-started-push/添加internetClient功能应该修复这个错误。创建通知通道会导致WPN_E_CLOUD_INCAPABLE错误原因:您的应用尚未在其应用清单(package.appxmanifest)中声明互联网功能。修复:确保您的应用程序清单声明了Internet功能。在VisualStudio清单编辑器中,您将在“功能”选项卡下找到此选项作为Internet(客户端)。AzureMobile的.NETClientSDK当前不支持在WindowsPhone8.1Silverlight应用程序中使用WNS。您必须使用MPN或将您的项目更改为非silverlight项目类型。参考(见Elio的回复):https://social.msdn.microsoft.com/Forums/azure/en-US/1aa29977-a26d-4054-89b2-c853cbd35c18/wns-for-windows-phone-silverlight-81-apps-使用azuremobile服务?forum=azuremobile我不确定他们是否会更新它以支持它,因为Silverightfor8.1主要是为了与现有应用程序向后兼容,而且没有多少人使用移动设备,因为它更新。就我而言,在我的项目设置中选择ARM平台就成功了。我在“任何CPU”上。以上是C#学习教程:在WindowsphoneSilverlight8.1上接收WNS推送通知分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
