加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-8 – 在后台任务中访问Javascript Metro应用程序的Index

发布时间:2020-12-14 05:27:55 所属栏目:Windows 来源:网络整理
导读:我试图从我的应用程序访问indexeddb(所以我可以更新实时磁贴)在 JavaScript后台任务中. 我正在设置这样的任务: var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder(); builder.name = taskName; builder.taskEntryPoint = "js
我试图从我的应用程序访问indexeddb(所以我可以更新实时磁贴)在 JavaScript后台任务中.

我正在设置这样的任务:

var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();
        builder.name = taskName;
        builder.taskEntryPoint = "jstaskbackgroundTask.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);

})();

该任务似乎工作正常,但如果我可以访问数据库(或任何应用程序资源),我无法解决.这种事情是否可能,如果是这样,我错过了什么?

解决方法

根据 http://msdn.microsoft.com/en-us/library/windows/apps/hh453270.aspx,Store应用程序中的WorkerGlobalScope(当您处于后台任务时生效)使indexedDB可用. IndexedDB在本地appdata中工作,因此应该可以用作任何其他appdata操作.

一般而言,后台任务可以修改应用数据并发布平铺/吐司/徽章更新.正如Slace指出的那样,您无法访问其他应用资源,因此appdata就是您与主应用共享数据的方式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读