我试图在javascript后台任务中从我的应用程序访问indexeddb(因此我可以更新活动磁贴)。在后台任务中访问Javascript Metro应用程序的IndexedDB
我设立的任务,像这样:
var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();
builder.name = taskName;
builder.taskEntryPoint = "js\\task\\backgroundTask.js";
//Run every 8 hours if the device is on AC power
var trigger = new Windows.ApplicationModel.Background.MaintenanceTrigger(480, false);
builder.setTrigger(trigger);
var task = builder.register();
任务看起来是这样的:
(function() {
"use strict";
var backgroundTaskInstance = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
var cancel = false;
function doWork() {
var key = null, settings = Windows.Storage.ApplicationData.current.localSettings;
//todo access db and update tile
close();
}
if (!cancel) {
doWork();
} else {
close();
}
function onCanceled(cancelSender, cancelReason) {
cancel = true;
}
backgroundTaskInstance.addEventListener("canceled", onCanceled);
})();
任务似乎很好地工作,但我不能工作了,如果我能访问数据库(或任何应用程序资源)。这种事情是甚至可能的,如果有的话,我错过了什么?
如果您访问indexeddb API并尝试写入数据,会发生什么情况? –