屏幕保护程序后屏幕打开后获取位置

时间:2015-11-15 14:00:43

标签: cordova geolocation

我正在开发一个Phonegap应用程序,我需要在最终用户使用应用程序时每5分钟记录一次移动用户的位置(当应用程序处于后台时,我真的不想获得该位置)。到目前为止,我使用这个函数:

setInterval(function() {
   navigator.geolocation.getCurrentPosition(geo_onSuccess, geo_onError);
}, 1000 * 60 * 0.1);

备注:出于测试目的,它设置为0.1而不是5(持续5分钟)

此功能正常,直到屏幕保护程序激活。当我打开屏幕时,不再调用函数geo_onSuccess。我只是通过geo_onError 1次获得超时错误。打开屏幕后如何让这个插件工作(重启?)?还是有其他方法可以定期记录移动用户的位置吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

为您的项目添加一些事件处理程序:

var geoInterval;

document.addEventListener("resume", onResume, false);

function onResume(){
   geoInterval = setInterval(function() {
      navigator.geolocation.getCurrentPosition(geo_onSuccess, geo_onError);
      }, 1000 * 60 * 0.1);
}