如何在应用程序清单中声明后台任务 (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>
将 EntryPoint 属性的字符串更改为在注册后台任务时使用的相同字符串 (path.filename)。
在此示例中,入口点为 Tasks.SampleBackgroundTask:
<Extension Category="windows.backgroundTasks" StartPage="js\backgroundtask.js">
更改 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>
相关主题
应用功能声明
如何手动创建包清单