wp8: обрабатывать всплывающие уведомления, когда приложение находится в фоновом режиме

Пока мое приложение работает, я могу получать всплывающие уведомления об обработчике событий ShellToastNotificationReceived (отправитель объекта, NotificationEventArgs e) в качестве ключей в e.Collection.

Если мое приложение не запущено и приходит всплывающее уведомление, отображается всплывающее уведомление, но как я могу обработать это уведомление?

Я имею в виду, какое событие срабатывает, когда мое приложение не работает и приходит уведомление.

Я знаю фонового агента, но это не соответствует моему требованию

Спасибо.


person Mansinh    schedule 26.06.2013    source источник


Ответы (2)


Платформа Windows Phone отвечает за обработку Push Notifications, и разработчики не имеют прямого доступа к обработке уведомлений, когда приложение не запущено. Это означает, что вы не можете выполнять какую-либо фоновую логику после получения Toast. Но когда Toast сообщение содержит <wp:Param> значение с Uri на определенную страницу приложения, пользователь будет перенаправлен на эту страницу, если пользователь коснется всплывающего окна Toast. Таким образом, вы можете выполнить определенную работу после того, как пользователь коснется всплывающего окна Toast. Для этого вам нужно добавить параметр в Uri, например /YourPage?IsToast=true, и переопределить OnNavigatedTo метод страницы для запуска вашей бизнес-логики:

 protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            if (NavigationContext.QueryString.ContainsKey("IsToast"))
            {
                //do your business here
            }
    }

Для других случаев вам нужно использовать фонового работника.

person Pavel Saniuk    schedule 26.06.2013
comment
: спасибо за повтор, но я просто хочу вызвать свой веб-сервис, когда придет уведомление. Когда мое приложение запущено и пришло уведомление, я получил событие ShellToastNotificationReceived, поэтому я могу вызвать свой веб-сервис, но когда приложение находится в фоновом режиме и пришло уведомление. сейчас, когда я запускаю свое приложение, чем я узнаю, сколько уведомлений пришло? - person Mansinh; 26.06.2013
comment
Выхода нет. На самом деле кажется, что Push Notifications не подходят для вашей цели. Я бы посоветовал вам использовать BackroundWorker или даже вызвать веб-сервис после запуска приложения, чтобы проверить изменения на сервере. - person Pavel Saniuk; 26.06.2013

да, мы можем обработать тост-уведомление. как только пользователь нажимает всплывающее уведомление, мы можем отправить запрос в нашу веб-службу и выполнить свою работу.

что происходит, когда пользователь нажимает всплывающее уведомление, так это перенаправление на событие запуска приложения на странице App.Xaml.cs. в этом случае в зависимости от содержания всплывающего уведомления вы можете перейти к следующему шагу.

надеюсь это поможет.

все же, если вы не сделали это, просто напишите мне письмо

счастливое кодирование.

person Suresh    schedule 17.01.2014