我问了这个问题,关于如何在地铁应用程序中捕获可见性变化:如何判断 JS Windows8 地铁应用程序是否可见
似乎有两个答案:1) 在应用失去焦点后大约 10 秒会调用检查点,因为应用将被挂起
2) 页面可见性事件将起作用。
但是,当我默认执行以下操作时.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);
})
对于检查点,您的代码是正确的,但请注意:
- 附加调试
- 器后,挂起/恢复不会自动发生。您需要使用 Visual Studio 中的工具栏来控制挂起状态。
- 您的控制台.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/