【发布时间】:2017-07-10 08:37:36
【问题描述】:
嘿,我是通用 Windows 平台和所属 API 的新手。 我正在尝试在 JS 中构建一个 UWP 应用程序。
问题 1: 我将如何初始化和监听后台任务(在 js 中)?
问题 2: 如果可能的话,后台任务将如何监听特定组合的任何按键。
【问题讨论】:
标签: javascript jquery visual-studio winapi uwp
嘿,我是通用 Windows 平台和所属 API 的新手。 我正在尝试在 JS 中构建一个 UWP 应用程序。
问题 1: 我将如何初始化和监听后台任务(在 js 中)?
问题 2: 如果可能的话,后台任务将如何监听特定组合的任何按键。
【问题讨论】:
标签: javascript jquery visual-studio winapi uwp
问题 1:如何初始化和监听后台任务(在 js 中)?
Create a BackgroundTask Class部分。三、在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);
})
}
})();
【讨论】:
0x80040154 - JavaScript runtime error: Class not registered所以我猜有些调用的Class尚未初始化。我也不确定将运行时组件链接到 UWP 项目。所以我在引用下链接了组件(不知道是不是错了)-here如果需要,你可以找到源
onclick 事件中,我应该用什么来代替appTrigger?
appTrigger 是我在代码中由var appTrigger = new Background.ApplicationTrigger(); 初始化的ApplicationTrigger
RuntimeComponent 中注册按键处理程序。没有办法做到这一点。 BackgroundTask 在单独的进程中运行,而您的按键事件在 UI 线程中运行。