繁体   English   中英

如何在Win8 Metro应用程序的js中捕获可见性更改/应用程序后台事件

[英]How to capture visibility change / app background event in js for a win8 metro app

我问了一个有关如何捕获Metro应用程序中的可见性更改的问题: 如何判断JS Windows8 Metro应用程序是否可见

似乎有两个答案:1)应用失去焦点后约10秒将调用检查点,因为该应用将被暂停

2)页面可见性事件将起作用。

但是,当我在default.js中执行以下操作时,我看不到这两种情况的发生:

var onVisibilityChange = function (args) {
  console.log("Visibility changed. (this will never appear");
};
app.addEventListener("visibilitychange", onVisibilityChange);

// ...

app.oncheckpoint = function (args) {
  console.log("APP onCheckpoint (this also never appears");
};

是否有人举了一个例子,说明该应用何时启动/停止可见?

为了提高可视性,您需要使用以下文档:

document.addEventListener("visibilitychange", function() {
    console.log("Visible: " + !document.hidden);
})

对于Checkpoint,您的代码是正确的,但请注意:

  • 挂起/恢复不会自动与调试器一起发生。 您需要使用Visual Studio中的工具栏来控制挂起状态。
  • 您的console.log在应用程序恢复运行之前不会显示(不清楚为什么,可能有一些缓存),如何在挂起之前通过在该行上设置断点并使用VS工具栏按钮来验证其是否已执行

一种解决方案是:

var onVisibilityChange = function (args) {
  var state = document["visibilityState"];
  if (state == "visible")
  {
    console.log("COMING IN");
  }
  else if (state == "hidden") {
    console.log("AWAY");
  }
};
document.addEventListener("visibilitychange", onVisibilityChange, false);

我建议使用此库: http : //dueljs.studentivan.ru/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM