Как объявлять фоновые задачи в манифесте приложения (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>
Измените атрибут EntryPoint, чтобы в нем содержалась та же строка, которую вы использовали для регистрации своей фоновой задачи (path.filename).
В этом примере точка входа — Tasks.SampleBackgroundTask:
<Extension Category="windows.backgroundTasks" StartPage="js\backgroundtask.js">
Измените атрибут 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>
Связанные разделы
Объявление возможностей приложений
Создание манифеста пакета вручную