アプリケーション マニフェストでバックグラウンド タスクを宣言する方法 (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>
  1. EntryPoint 属性を、バックグラウンド タスクを登録するときに使ったものと同じ文字列に変更します (path.filename)。

    この例では、エントリ ポイントは Tasks.SampleBackgroundTask です。

    
    <Extension Category="windows.backgroundTasks" StartPage="js\backgroundtask.js">
    
  2. 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>

関連トピック

アプリ機能の宣言

パッケージ マニフェストを手動で作成する方法

バックグラウンド タスクを登録する方法

バックグラウンド タスクをデバッグする方法

バックグラウンド タスクのガイドラインとチェック リスト