Как объявлять фоновые задачи в манифесте приложения (HTML)

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

Включите использование фоновых задач, объявив их как расширения в манифесте приложения. Каждая фоновая задача должна быть объявлена как расширение в манифесте приложения. Без этого программа не сможет регистрировать фоновые задачи (будет выдано исключение). Кроме того, фоновые задачи необходимо объявлять в манифесте приложения, чтобы оно прошло сертификацию.

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

Технологии

  • Конструктор манифестов Microsoft Visual Studio

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

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

Инструкции

Этап 1: Добавление расширений вручную

Откройте манифест приложения и перейдите к элементу Application. Создайте элемент Extensions (если он еще не существует).

Следующий фрагмент взят из образца BackgroundTaskSample:


<Application Id="App" StartPage="default.html">
  <VisualElements DisplayName="BackgroundTask JS sample" Logo="images\squareTile-sdk.png" SmallLogo="images\smallTile-sdk.png" Description="BackgroundTask JS sample" ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="false">
    <LockScreen Notification="badgeAndTileText" BadgeLogo="images\badgelogo-sdk.png" />
    <DefaultTile ShortName="BGTask JS" ShowName="allLogos" WideLogo="images\tile-sdk.png" />
    <SplashScreen BackgroundColor="#00b2f0" Image="images\splash-sdk.png" />
  </VisualElements>

  <Extensions>

    <!-- In the next step, we'll add elements here. -->

  </Extensions>

</Application>

Этап 2: Добавление расширения фоновой задачи

Объявите свою первую фоновую задачу.

Скопируйте этот код в элемент Extensions (атрибуты будут добавлены на следующих этапах).


<Application Id="App" StartPage="default.html">
  <VisualElements DisplayName="BackgroundTask JS sample" Logo="images\squareTile-sdk.png" SmallLogo="images\smallTile-sdk.png" Description="BackgroundTask JS sample" ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="false">
    <LockScreen Notification="badgeAndTileText" BadgeLogo="images\badgelogo-sdk.png" />
    <DefaultTile ShortName="BGTask JS" ShowName="allLogos" WideLogo="images\tile-sdk.png" />
    <SplashScreen BackgroundColor="#00b2f0" Image="images\splash-sdk.png" />
  </VisualElements>

  <Extensions>
    <Extension Category="windows.backgroundTasks" StartPage="">
      <BackgroundTasks>
        <Task Type="" />
      </BackgroundTasks>
    </Extension>
  </Extensions>

</Application>
  1. Измените атрибут EntryPoint, чтобы в нем содержалась та же строка, которую вы использовали для регистрации своей фоновой задачи (path.filename).

    В этом примере точка входа — Tasks.SampleBackgroundTask:

    
    <Extension Category="windows.backgroundTasks" StartPage="js\backgroundtask.js">
    
  2. Измените атрибут Type элемента Task, указав в нем тип регистрации задач, используемый с этой фоновой задачей. Если фоновая задача зарегистрирована с несколькими типами триггеров, добавьте дополнительные элементы Task и атрибуты Type для каждого из них.

    Примечание  Внесите в список все используемые типы триггеров. В противном случае фоновая задача не будет регистрироваться для необъявленных типов триггеров (метод Register не будет выполняться и выдаст исключение).

     

    Этот образец фрагмента кода задает использование SystemEventTrigger:

    
    <Task Type="systemEvent" />
    

    Примечание  В JavaScript использование элемента Executable не обязательно (или даже не применимо). Все фоновые рабочие процессы JavaScript выполняются в узле, по умолчанию предоставляемом системой.

     

Этап 3: Добавление дополнительных расширений фоновой задачи

Повторите этап 2 для каждого дополнительного класса фоновой задачи, регистрируемого вашим приложением.

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

<Application Id="App" StartPage="default.html">
  <VisualElements DisplayName="BackgroundTask JS sample" Logo="images\squareTile-sdk.png" SmallLogo="images\smallTile-sdk.png" Description="BackgroundTask JS sample" ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="false">
    <LockScreen Notification="badgeAndTileText" BadgeLogo="images\badgelogo-sdk.png" />
    <DefaultTile ShortName="BGTask JS" ShowName="allLogos" WideLogo="images\tile-sdk.png" />
    <SplashScreen BackgroundColor="#00b2f0" Image="images\splash-sdk.png" />
  </VisualElements>
  <Extensions>
    <Extension Category="windows.backgroundTasks" StartPage="js\backgroundtask.js">
      <BackgroundTasks>
        <Task Type="systemEvent" />
      </BackgroundTasks>
    </Extension>
    <Extension Category="windows.backgroundTasks" EntryPoint="Tasks.SampleBackgroundTask">
      <BackgroundTasks>
        <Task Type="systemEvent" />
        <Task Type="timer" />
      </BackgroundTasks>
    </Extension>
    <Extension Category="windows.backgroundTasks" EntryPoint="Tasks.ServicingComplete">
      <BackgroundTasks>
        <Task Type="systemEvent" />
      </BackgroundTasks>
    </Extension>
  </Extensions>
</Application>

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

Объявление возможностей приложений

Создание манифеста пакета вручную

Регистрация фоновой задачи

Отладка фоновой задачи

Руководство и контрольный список для фоновых задач