我问了一个关于如何在metro应用中捕获可见性更改的问题: How to tell if JS Windows8 metro app is visible or not
似乎有两个答案: 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");
};
有没有人有一个捕获应用程序启动/停止可见的时间的示例?
答案 0 :(得分:6)
要获得可见性,您需要使用文档:
document.addEventListener("visibilitychange", function() {
console.log("Visible: " + !document.hidden);
})
对于Checkpoint,您的代码是正确的,但请注意:
答案 1 :(得分:0)
一个解决方案是:
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);
答案 2 :(得分:0)
我建议使用此库:http://dueljs.studentivan.ru/