当我的表盘(基于Web)转到后台时,用于保持更新时间的计时器暂停。 当你回来时,这会导致滞后效应。让用户看到一个过时的时间几秒钟。
我理想的解决方案,为了不搞砸更多的事情而不必调整一堆动画到0.1秒定时器或以下任何内容:
为了实现这一目标,第一步当然是检测我的表盘何时回到前台,但我绝对无能为力,而且我并没有真正找到它。除了我的互联网真的很糟糕,我真正的手表测试是一个问题,所以我只需要知道已经证明了什么。
如何检测表盘何时返回前景?
提前感谢一堆
答案 0 :(得分:1)
您可以尝试这种方法。
var timer=0;
var visible_time=0;
var timer1 = 0;
var PERIOD_VISIBLE = 1000;
var PERIOD_NOT_VISIBLE = 2000;
var hidden, visibilityChange;
window.onload = function() {
document.addEventListener('tizenhwkey', function(e) {
if (e.keyName === "back") {
try {
tizen.application.getCurrentApplication().exit();
} catch (ignore) {}
}
});
var mainPage = document.querySelector('#main');
// Sample code
console.log("Foreground");
if (typeof document.hidden !== "undefined") {
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
function handleVisibilityChange(){
if (document[hidden]){
console.log("Background");
console.log("Page was visible for : "+visible_time+" seconds");
visible_time = 0;
timer = new Date().getTime();
} else {
console.log("Foreground");
console.log('You were away for ' + (new Date().getTime()-timer)/1000+ ' seconds.');
}
}
document.addEventListener(visibilityChange, handleVisibilityChange, false);
timer1 = setInterval(checkVisibility, (document.hidden) ? PERIOD_NOT_VISIBLE : PERIOD_VISIBLE);
document.addEventListener("webkitvisibilitychange", visibilityChanged, false);
function visibilityChanged() {
clearInterval(timer1);
timer1 = setInterval(checkVisibility, (document.hidden) ? PERIOD_NOT_VISIBLE : PERIOD_VISIBLE);
}
function checkVisibility() {
/*$('#timer').empty();*/
visible_time++;
/*$('#timer').append("<center>Page is visible for : "+visible_time+" seconds</center>");*/
}
mainPage.addEventListener("click", function() {
var contentText = document.querySelector('#content-text');
contentText.innerHTML = (contentText.innerHTML === "Basic") ? "Tizen" : "Basic";
});
};
&#13;
感谢。