JavaScript Metro 应用程序后台任务错误

标签 javascript windows-8 windows-store-apps background-process winjs

我正在尝试为我的 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();
})();

这是我的应用 list :

enter image description here

当我更改时区时,没有任何反应。我检查了事件日志,有一个错误:

The background task with entry point and name failed to activate with error code 0x80040154.

我做错了什么?

最佳答案

builder.Name = taskName;
builder.TaskEntryPoint = taskEntryPoint;

应该是

builder.name = taskName;
builder.taskEntryPoint = taskEntryPoint;

关于JavaScript Metro 应用程序后台任务错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14915253/

相关文章:

javascript - 如何撤销 .click(false)

javascript - Sapper 不断从客户端收到有关 'this' 关键字的警告?

wpf - MVVM 模式 - 执行 View 操作

.net - 为什么必须为 WinMD/WinRT 组件密封公开类型?

c# - 在 Windows 应用商店应用程序中获取 CoreDispatcher 的正确方法

javascript - 使用 curry 递增一个值,直到它等于另一个值

php - Jpgraph:如何手动设置 X 轴和 Y 轴的范围

c++ - 是否可以验证 WinRT 组件 DLL?

c# - 我在哪里标记 lambda 表达式异步?

c# - Youtube Windows Store App API