Javascript WinRT-在通用应用程序中启动/注册IBackgroundTask
我想在应用程序启动时启动IBackgroundTask 我已经将我的任务添加到了.appxmanifest.xml文件中,现在我的扩展名标记如下所示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
<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);
});