Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WinRT-在通用应用程序中启动/注册IBackgroundTask_Javascript_C#_Windows_Windows Runtime - Fatal编程技术网

Javascript WinRT-在通用应用程序中启动/注册IBackgroundTask

Javascript WinRT-在通用应用程序中启动/注册IBackgroundTask,javascript,c#,windows,windows-runtime,Javascript,C#,Windows,Windows Runtime,我想在应用程序启动时启动IBackgroundTask 我已经将我的任务添加到了.appxmanifest.xml文件中,现在我的扩展名标记如下所示 <Extensions> <Extension Category="windows.backgroundTasks" EntryPoint="CordovaApp.Library.UploadTask"> <BackgroundTasks> <Task Type="systemEve

我想在应用程序启动时启动IBackgroundTask

我已经将我的任务添加到了.appxmanifest.xml文件中,现在我的扩展名标记如下所示

<Extensions>
  <Extension Category="windows.backgroundTasks" EntryPoint="CordovaApp.Library.UploadTask">
    <BackgroundTasks>
      <Task Type="systemEvent" />
      <Task Type="timer" />
    </BackgroundTasks>
  </Extension>
</Extensions>
我已将此项目的引用添加到我的通用运行时组件项目中

一切都很好

现在要启动应用程序,我想我必须使用WinJs,所以我有以下代码

var uploadTaskName = 'UploadTask';
var tasks = Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks;
var uploadTaskFound = false;

for (var i = 0; i < tasks.length; i++) {
    if (tasks[i].Value.name == uploadTaskName) {
        successCallback();
        return;
    }
}

Windows.ApplicationModel.Background.BackgroundExecutionManager.requestAccessAsync().then(function() {
    var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();

    builder.name = "Upload Task";
    builder.taskEntryPoint = "CordovaApp.Library.UploadTask";
    builder.setTrigger(new Windows.ApplicationModel.Background.TimeTrigger(15, false));
    return builder.register();
}).done(function () {
    successCallback();
}, function(err) {
    errorCallback(err);
});
var uploadTaskName='UploadTask';
var tasks=Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks;
var uploadTaskFound=false;
对于(变量i=0;i
现在requestAccessAsync方法总是抛出

0x80004005-JavaScript运行时错误:未指定的错误 WinRT信息:应用程序不支持锁定屏幕


注册的所有东西都正确吗?我通过Visual Studio 2013在笔记本电脑上运行此功能

似乎因为应用程序已经安装,所以没有授予权限

通过卸载应用程序并重新运行它,系统会提示我允许/不允许后台服务运行。选中“允许”,现在似乎可以工作了

检查是否有帮助
var uploadTaskName = 'UploadTask';
var tasks = Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks;
var uploadTaskFound = false;

for (var i = 0; i < tasks.length; i++) {
    if (tasks[i].Value.name == uploadTaskName) {
        successCallback();
        return;
    }
}

Windows.ApplicationModel.Background.BackgroundExecutionManager.requestAccessAsync().then(function() {
    var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();

    builder.name = "Upload Task";
    builder.taskEntryPoint = "CordovaApp.Library.UploadTask";
    builder.setTrigger(new Windows.ApplicationModel.Background.TimeTrigger(15, false));
    return builder.register();
}).done(function () {
    successCallback();
}, function(err) {
    errorCallback(err);
});