1

JavaScript Metro アプリのバックグラウンド タスクを作成しようとしています。default.jsこれらをファイルに追加しました:

function RegisterBackgroundTask(taskEntryPoint, taskName, trigger, condition) {
    // Check for existing registrations of this background task.
    var taskRegistered = false;
    var background = Windows.ApplicationModel.Background;
    var iter = background.BackgroundTaskRegistration.allTasks.first();
    var hascur = iter.hasCurrent;

    while (hascur) {
        var cur = iter.current.value;
        if (cur.name === taskName) {
            taskRegistered = true;
            break;
        }
        hascur = iter.moveNext();
    }

    // If the task is already registered, return the registration object.
    if (taskRegistered == true) {
        return iter.current;
    }

    // Register the background task.
    var builder = new background.BackgroundTaskBuilder();

    builder.Name = taskName;
    builder.TaskEntryPoint = taskEntryPoint;
    builder.setTrigger(trigger);

    if (condition != null) {
        builder.addCondition(condition);
    }
    var task = builder.register();
    return task;
}

var trigger = new Windows.ApplicationModel.Background.SystemTrigger(Windows.ApplicationModel.Background.SystemTriggerType.timeZoneChange, false);

RegisterBackgroundTask("js\\bgtask.js", "test", trigger);

これは私のbgtask.jsです:

(function () {
    "use strict";
    var backgroundTaskInstance = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;

    function doWork() {

        // Write JavaScript code here to do work in the background.
        console.log("task done");

        close();
    }

    doWork();
})();

これは私のアプリのマニフェストです:

ここに画像の説明を入力

タイムゾーンを変更しても何も起こりませんでした。イベント ログを確認したところ、次のエラーが表示されました。

エントリ ポイントと名前を持つバックグラウンド タスクは、エラー コード 0x80040154 でアクティブ化できませんでした。

私は何を間違えましたか?

4

1 に答える 1