如何检测表盘何时到达前景?

时间:2016-10-03 10:01:00

标签: tizen tizen-web-app

当我的表盘(基于Web)转到后台时,用于保持更新时间的计时器暂停。 当你回来时,这会导致滞后效应。让用户看到一个过时的时间几秒钟。

我理想的解决方案,为了不搞砸更多的事情而不必调整一堆动画到0.1秒定时器或以下任何内容:

  • 检测表盘何时返回前景
  • 然后再次设置时间和间隔

为了实现这一目标,第一步当然是检测我的表盘何时回到前台,但我绝对无能为力,而且我并没有真正找到它。除了我的互联网真的很糟糕,我真正的手表测试是一个问题,所以我只需要知道已经证明了什么。

如何检测表盘何时返回前景?

提前感谢一堆

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;
&#13;
&#13;

感谢。

enter image description here