2012-08-08 32 views
0

我問了一下如何捕獲一個Metro應用可視性變化這樣的問題: How to tell if JS Windows8 metro app is visible or not如何捕獲可見性改變/應用程序後臺事件在JS的win8的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"); 
}; 

有誰知道:在應用啓動時拍攝的示例/停止可見該作品?

回答

6

可見性,你需要使用的文件:

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

檢查點,你的代碼是正確的,但請注意:

  • 掛起/恢復不附加調試器發生自動 。您需要使用Visual Studio中的工具欄來控制掛起狀態。
  • 您的console.log將不會顯示,直到應用程序恢復(不清楚爲什麼,可能是某個緩存),可以通過在該行上設置斷點來驗證它在被暫停之前執行,並使用VS工具欄按鈕
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); 
相關問題