0

メトロアプリで可視性の変化をキャプチャする方法についてこの質問をしました: JSWindows8メトロアプリが表示されているかどうかを確認する方法

そして、2つの答えがあるようです: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");
};

アプリが表示を開始/停止したときに機能するキャプチャの例はありますか?

4

3 に答える 3

6

可視性を得るには、ドキュメントを使用する必要があります。

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

チェックポイントの場合、コードは正しいですが、次の点に注意してください。

  • デバッガーが接続されている場合、一時停止/再開は自動的には行われません。一時停止状態を制御するには、VisualStudioのツールバーを使用する必要があります。
  • console.logは、アプリが再開されるまで表示されません(理由は不明ですが、おそらくキャッシュがあります)。その行にブレークポイントを設定し、VSツールバーボタンを使用することで、中断される前に実行されたことを確認できます。
于 2012-08-08T19:50:52.530 に答える
0

1つの解決策は次のとおりです。

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);
于 2012-08-08T20:25:21.297 に答える
0

このライブラリを使用することをお勧めします:http://dueljs.studentivan.ru/

于 2015-01-12T21:32:15.703 に答える