如何在應用程式資訊清單中宣告背景工作 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
在應用程式資訊清單中,透過宣告背景工作為延伸的方式,啟用它們的使用。 每個背景工作都必須宣告成應用程式資訊清單中的延伸。如果不這麼做,應用程式將無法登錄背景工作 (將會擲回例外狀況)。此外,在應用程式資訊清單中必須宣告背景工作,才能通過認證。
您必須知道的事
技術
- 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">
變更 Task Type 屬性以表示使用這個背景工作的工作登錄類型。如果使用多個觸發程序類型來登錄背景工作,請針對每一個觸發程序類型,新增其他含有 Type 屬性的 Task 元素。
注意 請確認列出您要使用的每一個觸發程序類型,否則背景工作將不會使用未宣告的觸發程序類型進行登錄 (Register 方法將會失敗並擲回例外狀況)。
這個程式碼片段範例表示使用 SystemEventTrigger:
<Task Type="systemEvent" />
注意 在 JavaScript 中,不一定要 (甚至不適合) 使用 Executable 元素。所有 JavaScript 背景工作者都是在預設的系統提供主機中執行。
步驟 3: 新增其他背景工作延伸
針對每一個由應用程式登錄的額外背景工作類別,請重複步驟 2。
下列範例是取自背景工作範例的完整 Application 元素。這裡顯示三個背景工作的用法。複製這個範例的延伸區段,有需要時可以修改它,以便在應用程式資訊清單中宣告背景工作。
<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>
相關主題
應用程式功能宣告
如何手動建立套件資訊清單