アプリケーション マニフェストでバックグラウンド タスクを宣言する方法 (HTML)
[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]
アプリ マニフェストでバックグラウンド タスクを拡張機能として宣言し、バックグラウンド タスクを使うことができるようにします。 アプリケーション マニフェストで、バックグラウンド タスクを個別に拡張機能として宣言する必要があります。このようにしないと、アプリはバックグラウンド タスクを登録できません (例外がスローされます)。また、認定に合格するように、アプリケーション マニフェストでバックグラウンド タスクを宣言する必要があります。
理解しておく必要があること
テクノロジ
- Microsoft Visual Studio マニフェスト デザイナー
必要条件
- このトピックでは、1 つ以上のバックグラウンド タスク ワーカーが作られていて、1 つ以上のトリガーに応答するようにアプリで各バックグラウンド タスク ワーカーを登録するものとします。
手順
ステップ 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 属性を、このバックグラウンド タスクで使われるタスク登録の種類を示すように変更します。バックグラウンド タスクを複数の種類のトリガーで登録する場合は、必要な Task 要素と Type 属性を個々に追加します。
注 使っているトリガーの各種類を確実に列記してください。そうしないと、バックグラウンド タスクは宣言されていない種類のトリガーには登録されません (Register メソッドが失敗し、例外がスローされます)。
次の抜粋例は、SystemEventTrigger の使用法を示します。
<Task Type="systemEvent" />
注 JavaScript では、Executable 要素を (適用できる場合であっても) 使う必要はありません。すべての JavaScript バックグラウンド ワーカーは、システムが提供するデフォルトのホストで実行されます。
ステップ 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>
関連トピック
アプリ機能の宣言
パッケージ マニフェストを手動で作成する方法