如何判断JS Windows8 metro app是否可见

时间:2012-08-07 23:48:07

标签: javascript windows-8 microsoft-metro

我正在尝试创建一个应用程序,当它变得可见时执行一些工作,并在它消失时执行其他工作。这通常通过页面可见性api(http://css.dzone.com/articles/using-html5s-pagevisibility)来完成,但Windows 8目前不支持此功能:http://msdn.microsoft.com/en-us/library/ie/hh673553(v=vs.85).aspx

有回调onactivated和oncheckpoint,但这些回调是针对流程生命周期的,并不一定与应用可见性相关。具体来说,应用程序可以在暂停之前进入后台很长一段时间。

任何帮助都将不胜感激。

- 亨利

2 个答案:

答案 0 :(得分:5)

我想你想要visibilitychange事件。请参阅Document文档here。有关应用程序生命周期事件的更多信息here

  

应用可见性

     

当用户从您的应用切换到另一个应用时,   您的应用程序不再可见,但一直处于运行状态,直到   Windows可以暂停它(大约10秒钟)。如果用户切换   远离您的应用程序,但在Windows之前激活或切换回它   可以暂停它,应用程序仍然处于运行状态。

     

您的应用没有   在应用可见性更改时收到激活事件,因为   应用程序仍在运行。 Windows只需切换到应用程序或从应用程序切换为   必要。如果您的应用需要在用户切换时执行某些操作   离开和返回,它可以处理VisibilityChanged |   msvisibilitychange事件。

     

可见性事件未序列化   简历或激活事件。不要以为这些事件会发生   按特定顺序。

答案 1 :(得分:-1)

如果您想跟踪应用焦点开关,可以使用window.onblurwindow.onfocus。特别是在有用的multimon环境中。