Подтвердить что ты не робот

PUSH не отображается, когда приложение открыто

Мое приложение получает push-уведомления хорошо, когда приложение закрыто. Но когда приложение работает, я ничего не получаю. Это тот же код, который я использовал в предыдущих приложениях без каких-либо проблем, которые были на WindowsPhone8, а новые приложения работают на устройствах WindowsPhone8.1.

Я использовал этот Push Tutorial, когда я сделал оригинальное приложение. У меня есть строка, в которой говорится об этом, если вы хотите получать уведомления, пока приложение открыто.

Если обновление 8.1 сделало что-то для push-уведомлений, которые было бы полезно знать. Было бы также оценено все остальное.

HttpNotificationChannel pushChannel;
string channelName = "PushChannel";
pushChannel = HttpNotificationChannel.Find(channelName);
//Push Notifications
if (pushChannel == null)

{
    pushChannel = new HttpNotificationChannel(channelName);

    //// Register for all the events before attempting to open the channel.
    pushChannel.ChannelUriUpdated += 
      new EventHandler<NotificationChannelUriEventArgs>(
         PushChannel_ChannelUriUpdated);
    pushChannel.ErrorOccurred += 
      new EventHandler<NotificationChannelErrorEventArgs>(
         PushChannel_ErrorOccurred);

    // Register for this notification only if you need to receive 
    // the notifications while your application is running.
    pushChannel.ShellToastNotificationReceived += 
      new EventHandler<NotificationEventArgs>(
         PushChannel_ShellToastNotificationReceived);

    pushChannel.Open();

    // Bind this new channel for toast events.
    pushChannel.BindToShellToast();

}
else...



void PushChannel_ShellToastNotificationReceived(object sender, 
                                                         NotificationEventArgs e)

{
    string relativeUri = string.Empty;

    // Parse out the information that was part of the message.
    foreach (string key in e.Collection.Keys)

    {
        if (string.Compare(
        key,
        "wp:Param",
        System.Globalization.CultureInfo.InvariantCulture,
        System.Globalization.CompareOptions.IgnoreCase) == 0)

        {
            relativeUri = e.Collection[key];
        }


    }
}
4b9b3361

Ответ 1

Роб Каплан:

Ожидается, что тосты не будут отображаться, когда приложение находится на переднем плане. Ожидается, что приложение покажет свой собственный интерфейс, если это необходимо (ваш фрагмент ничего не показывает). Это событие ShellToastNotificationReceived для: оно срабатывает, когда появляется уведомление тоста вместо тоста. Можете ли вы подтвердить, что ShellToastNotificationReceived не возникает, когда вы ожидаете тоста? Должен быть. Можете ли вы подтвердить, что он зарегистрирован и получен (или нет) в отладчике? См. Msdn.microsoft.com/en-us/library/windows/apps/...

Me:

До обновления 8.1, когда открытое приложение получило PUSH, тост все равно будет отображаться. Я только что проверил, и, конечно же, событие PushChannel_ShellToastNotificationReceived все еще запущено, но тост не отображается. Думаю, это просто означает, что мне нужно справляться с этим по-другому. Если вы хотите превратить это в ответ, я могу присудить ему награду.