0

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

WMAppManifest.xml

WNS

Push Notifications enabled

Package.appxmanifest

Toast capable

NotificationManager Код

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 
    } 
} 

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

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

Phone registration

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

ответ

0

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

Смежные вопросы