如何在应用程序清单中声明后台任务 (HTML)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

通过在应用清单中将后台任务声明为扩展,以实现对后台任务的使用。 每个后台任务都必须在应用程序清单中声明为扩展。否则,应用将无法注册后台任务(将引发异常)。此外,还必须在应用程序清单中声明后台任务以便通过认证。

你需要了解的内容

技术

  • Microsoft Visual Studio 清单设计程序

先决条件

  • 本主题假定你已创建一个或多个后台任务 worker,并且应用注册每个后台任务 worker 以响应一个或多个触发器。

说明

步骤 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. 更改 Task Type 属性以指示此后台任务所使用的任务注册类型。如果注册后台任务时使用了多个触发器类型,则为每个类型添加附加的 Type 元素和 Type 属性。

    注意  确保列出你所使用的各种触发器类型,否则后台任务将不会注册未声明的触发器类型(Register 方法将失败且引发异常)。

     

    此代码段示例指示使用 SystemEventTrigger:

    
    <Task Type="systemEvent" />
    

    注意  在 JavaScript 中,没有必要(或者甚至是不适宜)使用 Executable 元素。所有 JavaScript 后台 worker 都运行在系统提供的默认主机上。

     

步骤 3: 添加其他后台任务扩展

对你的应用注册的每个额外的后台任务类重复步骤 2。

下面的示例是来自后台任务示例的完整 Application 元素。此示例显示了如何使用 3 个后台任务。复制此示例的 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>

相关主题

应用功能声明

如何手动创建包清单

如何注册后台任务

如何调试后台任务

后台任务指南和清单