(本記事はVisualStudio2012RC+Windows8RP環境で確認しております。製品版では動作が異なる可能性があるのでご注意ください。)
前回のMetroStyleApp入門 vol42.BackgroundTaskを実行する(1)と同じことをHTML+JSのプロジェクトでやってみます。
今回も、前回同様3つのプロセスが必要です。
・バックグラウンドタスクの実装をする
・バックグラウンドタスクの登録処理をする
・バックグラウンドタスクを利用するようにマニフェストファイルに記述する
ただし、1つめと最後の3つめはC#+XAML版と同様です。
SampleTaskはC#+XAMLで作成して構いません。
というわけでバックグラウンドタスクの登録処理だけHTMML+JSで記述します。
default.jsに以下を記述
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
// TODO: このアプリケーションは新しく起動しました。ここでアプリケーションを
// 初期化します。
var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();
var trigger = new Windows.ApplicationModel.Background.SystemTrigger(Windows.ApplicationModel.Background.SystemTriggerType.timeZoneChange, false);
builder.name = "Example background task worker name";
builder.taskEntryPoint = "SampleTask.Class1";
builder.setTrigger(trigger);
var task = builder.register();
} else {
// TODO: このアプリケーションは中断状態から再度アクティブ化されました。
// ここでアプリケーションの状態を復元します。
}
args.setPromise(WinJS.UI.processAll());
}
};
あとは、C#+XAML同様にマニフェストを定義するのですが、
HTML+JS版はなんだかエラーがでます。
ですが、問題なくコンパイルと実行が通るのでOKとしておきましょう(MS公式サンプルもエラー出ていたのでいいはずだ・・・)。
Please give us your valuable comment