|
BeX5 V3.7版本
做了一个实时定位,用插件是require("cordova!cordova-plugin-geolocation") 和 require("cordova!de.appplant.cordova.plugin.background-mode")
写了一个定时器执行navigator.geolocation.getCurrentPosition(successCallback, errorCallback)方法
setInterval(function(){
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
}, 3000)
此时运行app一切正常
放到后台运行时,调用这个方法
Model.prototype.backgroundMode = function(event){
var me = this;
//激活后台运行
document.addEventListener('deviceready', function() {
cordova.plugins.backgroundMode.enable();
cordova.plugins.backgroundMode.onactivate = function() {
timer = setInterval(function() {
// 监听位置
navigator.geolocation.getCurrentPosition(success, error);
function success(position) {
me._longitude = position.coords.longitude;
me._latitude = position.coords.latitude;
server.sendRequest({
"url" : "/test/update",
"async" : false,
"params" : {
ygId : localStorage.getItem("userid"),
latitude : me._latitude,
longitude : me._longitude
}
});
}
function error() {
justep.Util.hint("获取当前位置失败");
}
}, 3000);
};
cordova.plugins.backgroundMode.ondeactivate = function() {
clearInterval(timer);
};
});
}
这时也可以正常运行,但是获取到的经纬度是一样的,这是什么原因
|
|