Поделиться через


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

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

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

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

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

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

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

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

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

Чтобы запросить размещение приложения на экране блокировки, необходимо задать определенные возможности в манифесте приложения. Кроме того, ваше приложение должно содержать код запроса добавления на экран блокировки и уметь обрабатывать ситуации добавления на экран блокировки или удаления с него пользователем.

Приложение должно получить согласие пользователя на размещение на экране блокировки. Приглашение с запросом появляется, когда вызывается API запросов экрана блокировки. Если пользователь запрещает работу приложения на экране блокировки, то снова запросить разрешение невозможно. Однако если пользователь случайно закроет диалоговое окно приглашения, то можно повторить запрос.

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

Чтобы запросить размещение приложения на экране блокировки, выполните следующие шаги. Можно изменить манифест приложения вручную или при помощи Microsoft Visual Studio 2013, открыв файл package.appxmanifest.

JJ679949.wedge(ru-ru,WIN.10).gifРегистрация приложения на экране блокировки

  1. Убедитесь, что в манифесте приложения объявлен широкий логотип, связанный с его плиткой. Убедитесь, что в манифесте приложения задан атрибут WideLogo в элементе DefaultTile.

    В следующем образце элемент DefaultTile добавляется под элементом <VisualElements> в манифесте приложения.

        <DefaultTile ShowName="allLogos" WideLogo="images\tile.png" />
    
  2. Укажите, что приложение будет использовать фоновую задачу. В манифесте приложения также должен быть указан исходный файл JavaScript, содержащий фоновую задачу, и имя класса, в котором реализована точка входа фоновой задачи.

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

    В следующем образце в манифест приложения под элементом <Application> добавляется необработанное push-уведомление.

      <Extensions>
        <Extension Category="windows.backgroundTasks" StartPage="js\backgroundTask.js">
          <BackgroundTasks>
            <Task Type="pushNotification" />
          </BackgroundTasks>
        </Extension>
      </Extensions>
    
  3. Поскольку приложение будет располагаться на экране блокировки, оно должно иметь значок для экрана блокировки, который можно использовать для просмотра пропущенных уведомлений. Для этого обновите манифест приложения, включив элемент LockScreen.

    В следующем образце показано добавление элемента LockScreen под элементом <VisualElements> в манифесте приложения.

        <LockScreen Notification="badge" BadgeLogo="Images\badgelogo.png" />
    
  4. После выполнения этих действий приложение сможет запрашивать у пользователя разрешение на размещение на экране блокировки. Методы Background.BackgroundExecutionManager.RequestAccessAsync открывают диалоговое окно, в котором предлагается добавить приложение на экран блокировки. Если пользователь подтверждает запрос, то приложение может работать в фоновом режиме и размещать уведомления на экране блокировки.

    В следующем образце запрашивается разрешение на помещение на экран блокировки.

    
        var lockScreenAdded = false;
    
        function ClientInit() {
            // Lock screen is required for raw push notification
            // background code to run.
            //
            if (lockScreenAdded == false) {
                BackgroundExecutionManager.RequestAccessAsync().done(function (result) {
    
                switch (result) {
                    case BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity:
                        //
                        // App is allowed to use RealTimeConnection broker 
                        // functionality even in low power mode.
                        //
                        lockScreenAdded = true;
                        break;
                    case BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity:
                        //
                        // App is allowed to use RealTimeConnection broker 
                        // functionality but not in low power mode.
                        //
                        lockScreenAdded = true;
                        break;
                    case BackgroundAccessStatus.Denied:
                        //
                        // App should switch to polling mode (example: poll for email based on time triggers)
                        //
                        WinJS.log && WinJS.log("Lock screen access is denied", "sample", "status");
                        break;
                }
            }, function (e) {
                WinJS.log && WinJS.log("An error occurred while requesting lock screen access.", "sample", "error");
            });
        }
    

    При создании приложения экрана блокировки на основе WNS, использующего необработанные push-уведомления, после предоставления разрешения параметр BackgroundAccessStatus для приложения будет иметь значение AllowedMayUseActiveRealTimeConnectivity. Параметр подключения в режиме реального времени AllowedWithAlwaysOnRealTimeConnectivity используется для сетевых триггеров и не влияет на приложения на экране блокировки, использующие необработанные push-уведомления через WNS.

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

    Подробнее о запросах экрана блокировки см. в разделах Обзор экрана блокировки и Образец приложений на экране блокировки.

Краткая сводка и дальнейшие действия

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

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

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

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

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

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

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

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

Общие сведения об индикаторе событий

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

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

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

Обзор экрана блокировки

Обзор push-уведомлений

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

Общие сведения о плитках и уведомлениях плиток

Общие сведения о всплывающих уведомлениях

Передача данных в фоновом режиме

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

Ссылки

HttpClient

HttpClientHandler

IXMLHTTPRequest2

System.Net.Http

Windows.ApplicationModel.Background

Windows.Networking.BackgroundTransfer

Windows.Networking.PushNotifications

Windows.Networking.Sockets

Примеры

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

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

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

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