0
嘿,我是通用Windows平台和所属API的新手。 我想在JS中构建一个UWP应用程序。JavaScript,UWP:Backgroundtask跟踪按键事件
问题1: 我该如何初始化并侦听后台任务(在js中)?
问题2: 如果可能,后台任务将如何侦听特定组合的任意按键。
嘿,我是通用Windows平台和所属API的新手。 我想在JS中构建一个UWP应用程序。JavaScript,UWP:Backgroundtask跟踪按键事件
问题1: 我该如何初始化并侦听后台任务(在js中)?
问题2: 如果可能,后台任务将如何侦听特定组合的任意按键。
Question 1: How would I initialize and listen for a background task (in js)?
Create a BackgroundTask Class
部分Official Document。第三,在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);
})
}
})();
Question 2: And how, if possible, would the background task listen for any keypress of a specific combination.
您可以为您backgroundtask和设置ApplicationTrigger点击事件函数调用ApplicationTrigger.requestAsync
:
document.getElementById("btnClick").onclick = function (evt)
{
appTrigger.requestAsync().then(function (result) {
var abc = result;
}, function (err) {
console.log(err);
})
}
})();
非常感谢您的帮助!当我执行js初始化时,出现以下错误:'0x80040154 - JavaScript运行时错误:类未注册'所以我猜一些被调用的类尚未初始化。我也不确定将运行时组件链接到UWP项目。所以我链接组件下的引用(不知道这是错误的) - [这里](https://github.com/jonhue/my_clipboard)你可以找到源,如果需要 – jonhue
我能够解决这个问题。我应该在'onclick'事件中取代appTrigger? – jonhue
'appTrigger'是'ApplicationTrigger'我用'VAR appTrigger =新Background.ApplicationTrigger()初始化;'在我的代码 –