如何在js中为win8 metro应用程序捕获可见性更改/应用程序后台事件

hen*_*nry 0 javascript microsoft-metro windows-8

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

似乎有两个答案:1)应用程序失去焦点后大约10秒钟将调用checkpoint,因为应用程序将被暂停

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");
};
Run Code Online (Sandbox Code Playgroud)

有没有人有一个捕获应用程序启动/停止可见的工作示例?

Dom*_*ton 6

要获得可见性,您需要使用该文档:

document.addEventListener("visibilitychange", function() {
    console.log("Visible: " + !document.hidden);
})
Run Code Online (Sandbox Code Playgroud)

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

  • 挂起/恢复不会在附加调试器的情况下自动发生.您需要使用Visual Studio中的工具栏来控制挂起状态.
  • 你的console.log将不会显示,直到应用程序恢复(不清楚原因,可能是一些缓存),你可以通过在该行上设置断点并使用VS工具栏按钮来确认它在被暂停之前执行