Xamarin Forms WinPhone 8.1 Silverlight WNS push-уведомления

Я пытаюсь настроить свое приложение для использования WNS вместо MPNS (я использую Xamarin Forms и имею проект Win Phone 8.1 Silverlight с концентратором уведомлений Azure для серверной части), для этого я обновил свой код, чтобы использовать мобильный службу для регистрации телефона для push-уведомлений и изменил службу уведомлений в WMAppManifest.xml на WNS. После внесения этих изменений, когда я проверяю регистрацию телефонов через Azure, он говорит, что это MPNS. Ниже приведены скриншоты моей конфигурации и фрагменты кода того, как я регистрирую приложение.

WMAppManifest.xml

WNS

Push-уведомления включены

Пакет.appxmanifest

Возможность всплывающих уведомлений

Код диспетчера уведомлений

public class PushNotificationManager : IPushNotificationManager
{
    private PushNotificationChannel channel;

    public PushNotificationManager() { }

    public static MobileServiceClient MobileService = new MobileServiceClient(Utilities.Constants.ApplicationURL, Utilities.Constants.ApplicationKey);

    public async Task RegisterDevice()
    {
        try
        {
            channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

            channel.PushNotificationReceived += Channel_PushNotificationReceived;

            await this.RegisterWinDevice(channel.Uri);

            NotificationTask.UnregisterBackgroundTask();
            NotificationTask.RegisterBackgroundTask();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    protected void Channel_PushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs args)
    {
        try
        {
            //Create notification
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    public async Task UnregisterDevice()
    {
        if(channel != null)
        {
            channel.Close();
        }

        await MobileService.GetPush().UnregisterNativeAsync();
    }

    private async Task RegisterWinDevice(string channelUri)
    {
        try
        {
            var tags = new List<string>() { };
            User user = LocalStorage.GetUserInfo();
            tags.Add(user.Id.ToString());

            await MobileService.GetPush().RegisterNativeAsync(channelUri, tags.ToArray());
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void CreateNotification(string title, string message)
    {
        //Show Toast
    }
}

В Azure я установил SID пакета Windows и секрет клиента. У меня также включены push-уведомления без аутентификации (хотя, насколько я понимаю, это для MPNS).

И, наконец, вот скриншот того, как он регистрируется с помощью следующего кода:

Регистрация по телефону

Если кто-нибудь знает, как заставить его правильно зарегистрироваться в WNS, я был бы очень признателен за помощь. Спасибо!




Ответы (1)


Просто обновление о том, как я решил свою проблему, если кто-то столкнется с этим. Мне пришлось переключить мой проект winphone на приложение, отличное от Silverlight (я предполагаю, что оно не поддерживается в этой версии). Как только я это сделал, все стало работать правильно.

person Lord-Link    schedule 01.04.2016