我有windows phone 8.1 silverlight应用程序,我希望使用新框架WNS接收Notfications。

我在package.appxmanifest: <identity name="4657xxxxxxx" publisher="CN=xxxxx" version="1.0.0.0"/>并将其添加到移动服务中心。

为此,我删除了对MPNS使用的旧引用,并为WNS添加了以下内容:

使用Windows.UI.Notifications;

使用Windows.Networking.PushNotifications;

使用Windows.UI.StartScreen;

这导致了获得channelURI的新方法:

 public static PushNotificationChannel CurrentChannel { get; private set; }

    public async static Task<bool> UploadChannel()
    {
        bool newChannel = false;
        var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
        var settings = Windows.Storage.ApplicationData.Current.LocalSettings.Values;
        object oldChannel;
        settings.TryGetValue("channelURI", out oldChannel);
        if ((oldChannel as PushNotificationChannel).Uri != CurrentChannel.Uri)
        {
            settings.Add("channelURI", CurrentChannel);
            newChannel = true;
        }
        try
        {
            await App.MobileService.GetPush().RegisterNativeAsync(channel.Uri);
        }
        catch (Exception exception)
        {
            CurrentChannel.Close();
            HandleRegisterException(exception);
        }

        CurrentChannel.PushNotificationReceived += CurrentChannel_PushNotificationReceived;
        return newChannel;
    }
    private static void HandleRegisterException(Exception exception)
    {
        MessageBox.Show("error - retry pushchannel");
    }

另外,我根据microsofts更新信息删除了ID_CAP_PushNotification我没有收到频道我收到错误:

该应用程序没有云通知功能。 (HRESULT异常:0x803E0110)

解决方案搜索错误并找到此链接 ,这可以通过访问package.appxmanifest并启用Internet(客户端和服务器)来解决,如下面的答案中所述。

错误2然后它的UploadChannel()函数应该工作。 但是,Register API调用await App.MobileService.GetPush().RegisterNativeAsync(channel.Uri); 导致服务器出错:

消息='无法注册'mpns'平台。 收到错误:'不支持的频道uri:' https : //db3.notify.windows.com

错误是有道理的,但我不知道如何解决它。

Ekstra在服务器上我可以使用URI订阅,并接收通知。 但不是客户端。 这应该是怎么样的?

===============>>#1 票数:2

添加internetClient功能应该可以解决此错误。

创建通知通道会导致WPN_E_CLOUD_INCAPABLE错误原因:您的应用尚未在其应用清单(package.appxmanifest)中声明Internet功能。 修复:确保您的应用清单已声明Internet功能。 在Visual Studio清单编辑器中,您将在“功能”选项卡下找到此选项作为Internet(客户端)。

===============>>#2 票数:2 已采纳

在客户端:

理想情况下,要使用WNS,您应该从WMAppManifest.xml中删除对MPNS的所有引用,并将Windows应用商店提供的信息添加到您的package.appxmanifest中。

我知道您正在从WP8迁移到WP8.1。 所以在你的package.appxmanifest中,编辑代码使它看起来像这样:

<Identity Name="4657xxxxxxx" Publisher="CN=xxxxx" Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="xxxx" PhonePublisherId="00000000-0000-0000-0000-000000000000" />

注意: PhonePublisherId中的0是故意的。 我不明白为什么,但是当我没有提供它们时,应用程序将无法运行。

您正在执行通道uri请求权限:

PushNotificationChannel channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
string channelUri = channel.Uri;

您还应该在Package.appxmanifest中设置Internet(客户端和服务器)功能以进行检查。

要在客户端接收通知,您应截取收到的通知,如下所述: https//msdn.microsoft.com/en-us/library/windows/apps/xaml/jj709907.aspx

在服务器端:

出现错误“不支持的通道URI”,因为您使用MPNS方法处理Azure服务器中的URI。

请参阅此处以了解使用WNS的正确方法: http//azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-windows-universal-dotnet-get-started-push/

===============>>#3 票数:0

用于Azure Mobile的.NET客户端SDK目前不支持在Windows Phone 8.1 Silverlight应用程序中使用WNS。 您必须使用MPN或将项目更改为NON-silverlight项目类型。

参考(参见Elio的回复): https//social.msdn.microsoft.com/Forums/azure/en-US/1aa29977-a26d-4054-89b2-c853cbd35c18/wns-for-windows-phone-silverlight-81-apps -with-azuremobile服务?论坛= azuremobile

我不确定他们是否会更新它以支持这一点,因为Silveright for 8.1主要是为了与现有应用程序进行向后兼容,并且没有多少人使用移动服务,因为它更新。

===============>>#4 票数:0

就我而言,在我的项目设置中选择ARM平台就可以了。 我在“任何CPU”。

  ask by JTIM translate from so

未解决问题?本站智能推荐:

1回复

无法在Windows Phone 8.1 Silverlight上使用WNS发送推送通知

在这里的帮助下,我们刚刚将现有的Windows Phone 8 Silverlight应用程序升级到Windows Phone 8.1 Silverlight项目。基本上,我们想使用WNS发送推送通知,而不是MPNS。 我们在清单文件中将通知类型更改为WNS。 我们在package.meni
1回复

WP Silverlight BackgroundTask与Azure通信

你好,我有一个WP8.1的Silverlight项目,这是一个游戏。 我使用backgroundTask来提醒用户他上次玩的时间,如果他太慢而无法遵守我想从bagroundTask打电话给服务器从游戏中退出。 backgroundTask是使用stackoverflow和本博客制作的 ,
1回复

如何在Windows Phone 8.1 Universal App中订阅特定主题的原始通知

我发现了很多有关如何注册原始通知的代码示例。 但是我找不到如何限制到特定主题。 我错过了什么吗? 到目前为止,这是我的代码:
1回复

CRUD操作Azure移动服务表服务Windows Phone 8.1 [关闭]

我是Windows移动应用程序开发的新手。 我发现了很多类似此处的教程,它们涉及创建azure移动服务和向表中添加数据。 但是我找不到任何教程如何从Tabe检索数据回XAML并执行CRUD操作。 您能否将我引向任何说明Azure移动服务表服务中CRUD操作的文章。 简单的例子对像我这样的
3回复

我可以在Windows Phone 8.1应用程序的Azure移动服务中使用自己的数据库吗?

为我的Windows Phone 8.1创建新服务时,也会为该服务创建数据库。 我可以使用位于webhost4life.com自己的数据库来代替使用服务创建的数据库吗? 我可以使用该服务器上的该数据库进行数据添加吗?
2回复

在WP 8.1中不返回MobileServiceClient.LoginAsync(..)

我正在使用Azure移动服务登录服务,它在Windows 8.1上可以正常工作,但是在WP 8.1上,它显示了服务登录页面(Microsoft,Google等)。我输入了凭据,然后返回到应用程序(没有)表示同意)。 也不例外,没有。 线程似乎已冻结,并且控制权已返回给UI线程。 在Wind
1回复

从不同项目访问Windows Phone上的Azure移动服务

您好,我遇到以下异常: 附加信息:请求无法完成。 (错误的请求) 我不明白为什么,由于该功能有时起作用,因此有时会在stackoverflow上找到以下内容: 尝试从Azure检索数据时,出现MobileServiceInvalidOperationException 。
1回复

在WP8.1中接收推送通知

我是Windows Phone开发的新手,还是推送通知的新手。 我正在为我的客户端开发一个使用Azure移动服务推送通知的应用程序。 我阅读了此博客,并在Application_Launching方法顶部的App.xaml中添加了以下代码。 对于频道名称,我使用的是设备令牌。
1回复

Windows Phone 8.1 Silverlight上的推送通知触发器

我正在研究Windows Phone 8.1中可用的“功能”推送通知触发器。 我的目标是使此功能与Windows Phone Silverlight 8.1项目一起使用。 据我所知,它应该基于我的阅读。 2天后,我完全被卡住了。 不管我在做什么。 当我向应用程序发送原始通知时,我的
1回复

Windows Phone 8.1推送通知测试应用程序错误:推送通知系统不可用

我正在关注一个教程博客,以学习Windows Phone 8.1的推送通知 http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2014/04/24/windows-phone-8-1-running-cod