如何查看我的基于JavaScript的UWP是否运行在;背景任务“;上下文
UWP支持在后台运行,例如或 基于JavaScript的UWP应用程序在各自的应用程序清单文件(如何查看我的基于JavaScript的UWP是否运行在;背景任务“;上下文,javascript,uwp,windows-10-universal,background-task,Javascript,Uwp,Windows 10 Universal,Background Task,UWP支持在后台运行,例如或 基于JavaScript的UWP应用程序在各自的应用程序清单文件(.appxmanifest)中声明 检测我的代码是否作为后台任务运行的最佳实践是什么?根据指导,首先需要创建一个后台任务类,并将其注册为在应用程序不在前台时运行 后台任务与应用程序分离,它们单独运行,但后台任务的进度和完成情况可以由应用程序代码监控。为了实现这一点,应用程序订阅了它在系统中注册的后台任务中的事件。 您可以使用BackgroundTaskProgressEventHandler var
.appxmanifest
)中声明
检测我的代码是否作为后台任务运行的最佳实践是什么?根据指导,首先需要创建一个后台任务类,并将其注册为在应用程序不在前台时运行 后台任务与应用程序分离,它们单独运行,但后台任务的进度和完成情况可以由应用程序代码监控。为了实现这一点,应用程序订阅了它在系统中注册的后台任务中的事件。 您可以使用BackgroundTaskProgressEventHandler
var backgroundTaskProgressEventHandler = function(sender, args) {
/* Your code */
}
检测web工作者上下文将在其他一些SO问题(,)中介绍。一种解决方案如下:
function inBackgroundTaskContext() {
return typeof importScripts === 'function'
}
是一个可从web worker上下文中调用的函数。当应用程序在“正常”应用程序上下文中运行时,它没有定义。我假设如果你问这个问题,你已经构建、注册并执行了后台任务,这只能通过UI线程使用ApplicationRigger()完成。如果没有,则您的应用程序可能处于预启动状态()。否则,您应该能够在调用requestAsync()之前和之后以编程方式处理报告,或者通过Windows.UI.WebUI.WebUIBackgroundTaskInstance.progress在后台任务中报告来跟踪后台任务的进度,这是不准确的;后台任务和应用程序都可以运行相同的代码,甚至可以从相同的入口点运行。它们不必彼此分离。这假设我控制调用代码,而在Cortana插件开发的情况下,我不控制调用代码。后台任务是web workers,因此您还可以检查(self.importScripts)===未定义,因为该函数仅在web workers中可访问。