嗨,我是Universal Windows Platform和所属API的新手。
我正在尝试在JS中构建UWP应用程序。

问题1:
我将如何初始化和侦听后台任务(在js中)?

问题2:
以及在可能的情况下,后台任务如何监听特定组合的任何按键。

最佳答案

问题1:如何初始化和侦听后台任务(在js中)?



首先,您需要创建一个运行时组件并创建一个实现Windows.ApplicationModel.Background.IBackgroundTask的BackgroundTask类。有关详细信息,请参见Official DocumentCreate a BackgroundTask Class部分。
其次,在package.appxmanifest中注册backgroundTask:
javascript - JavaScript,UWP:Backgroundtask跟踪按键事件-LMLPHP
第三,在js代码中注册backgroundTask:

(function () {
"use strict"
//Initialization
var Background = Windows.ApplicationModel.Background;
//Register
var taskBuilder = new Background.BackgroundTaskBuilder();
taskBuilder.name = "MyBackgroundTask";
//init trigger
var appTrigger = new Background.ApplicationTrigger();
taskBuilder.taskEntryPoint = "MyRuntimeComponent.MyBackgroundTask";
taskBuilder.setTrigger(appTrigger);
//Check if background task already registered
var taskRegistered = false;
var iter = Background.BackgroundTaskRegistration.allTasks.first();
var hascur=iter.hasCurrent;
while (hascur)
{
    var current = iter.current.value;
    if (current.name == "MyBackgroundTask")
    {
        taskRegistered = true;
        break;
    }
    iter.moveNext();
}

if (!taskRegistered)
{
    taskBuilder.register();
}

//click event
document.getElementById("btnClick").onclick = function (evt)
{
    appTrigger.requestAsync().then(function (result) {
        var abc = result;
    }, function (err) {
        console.log(err);
    })
}
})();




  问题2:后台任务如何侦听特定组合的任何按键。


您可以为您的后台任务设置ApplicationTrigger,并在点击事件功能中调用ApplicationTrigger.requestAsync

document.getElementById("btnClick").onclick = function (evt)
{
    appTrigger.requestAsync().then(function (result) {
        var abc = result;
    }, function (err) {
        console.log(err);
    })
}
})();

关于javascript - JavaScript,UWP:Backgroundtask跟踪按键事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42355186/

10-09 02:43