Написание фоновой задачи для необработанных push-уведомлений (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

В этом разделе приводятся сведения о том, как написать код фоновой задачи для получения фоновых сетевых уведомлений, использующих необработанные push-уведомления в приложениях среды выполнения Windows на экране блокировки. В этом разделе объясняется, как написать код фоновой задачи для функции необработанных push-уведомлений для приложения среды выполнения Windows в Windows 8.1.

Что необходимо знать

Технологии

Необходимые условия

  • Следующая информация относится к приложениям среды выполнения Windows, подключенным к сети или поддерживающим работу в сети и зависящим от сетевых подключений, которые используют необработанные push-уведомления для постоянного поддержания таких подключений. Этот раздел применим к приложениям, написанным на JavaScript для Windows 8.1, Windows Phone 8.1 и Windows Server 2012.

    Фоновое сетевое подключение с использованием необработанных push-уведомлений поддерживается приложениями на JavaScript и C++/XAML, а также приложениями, использующими платформу .NET Framework 4.5 и написанными на C#, VB.NET или управляемом C++. Подробнее о фоновых сетевых задачах, относящихся к приложениям на JavaScript, см. в разделе Поддержка приложения с помощью фоновых задач.

Инструкции

Написание кода фоновой задачи

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

Каждая фоновая задача реализуется с помощью функции, которая запускается при регистрации приложения на получение необработанного push-уведомления. Это было указано в манифесте приложения в качестве специального исходного файла на JavaScript, содержащего одну функцию.

В следующем примере показана функция, которая запускается при инициировании фоновой задачи необработанным push-уведомлением.

(function () {
    // Get the background task details
    var backgroundTask = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
    var settings = Windows.Storage.ApplicationData.current.localSettings;
    var taskName = backgroundTask.task.name;

    console.log("Background task \"" + taskName + "\" starting...");

    // Store the content received from the notification so it can be retrieved
    // from the UI.
    var notificationDetails = backgroundTask.triggerDetails;
    settings.values[taskName] = notificationDetails.content;

    console.log("Background \"" + taskName + "\" completed!");

    // Close the instance running the task
    close();
})();

Примечание  В фоновой задаче нельзя ссылаться на элементы пользовательского интерфейса приложения, поскольку они не работают. Когда код выполняется в фоновой задаче, можно получить данные от необработанного push-уведомления, проанализировать и обработать их и показать уведомление для пользователя.

 

Время существования фоновой задачи контролируется функцией, которая реализует фоновую задачу. Когда приложение завершает функцию, оно приостанавливается.

Когда запускается фоновая задача приложения, операционная система гарантирует, что в ходе синхронизации данные необработанных push-уведомлений будут доставлены в приложение либо будет возвращена ошибка (например, "подключение сброшено"). Аналогично, в конце фоновой задачи приложение должно обеспечить отображение уведомлений до того, как приложение будет приостановлено.

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

Предыдущие шаги

Дополнительные сведения о создании приложения на экране блокировки для получения фоновых сетевых уведомлений, использующих необработанные push-уведомления, см. в разделе Как создать на экране блокировки приложение, использующее необработанные push-уведомления в фоновом режиме.

Дополнительные сведения о процессе регистрации канала push-уведомления и отправки его на ваш сервер, о регистрации фоновой задачи для активации из необработанного push-уведомления, а также об отправке push-уведомления на канал и активации фоновой задачи см. в разделе Использование WNS для доставки необработанных push-уведомлений в приложения на экране блокировки.

Дополнительные сведения о руководстве и контрольных списках для использования необработанных push-уведомлений:

Руководство и контрольный список для необработанных уведомлений.

Связанные разделы

Другие ресурсы

Добавление поддержки сети

Фоновая работа в сети

Руководство и контрольный список для необработанных уведомлений

Проверка подлинности с помощью службы push-уведомлений Windows (WNS)

Доставка необработанных push-уведомлений в приложение на экране блокировки с помощью WNS

Общие сведения об экране блокировки

Общие сведения о push-уведомлениях

Как создать на экране блокировки приложение, использующее необработанные push-уведомления в фоновом режиме

Поддержка приложения с помощью фоновых задач

Диагностика и отладка сетевых подключений

Ссылки

HttpClient

HttpClientHandler

IXMLHTTPRequest2

System.Net.Http

Windows.ApplicationModel.Background

Windows.Networking.BackgroundTransfer

Windows.Networking.PushNotifications

Windows.Networking.Sockets

Примеры

Пример фоновой задачи

Примеры приложений на экране блокировки

Пример периодических и push-уведомлений со стороны

Пример необработанного уведомления