Angular js cordova地理位置获取当前位置并在后台将数据发送到服务器
Angular js cordovaGeolocation getting current position and Sending Data to Server in Background
我正在尝试 cordova地理位置链接 我已经在我的应用程序中插入了相同的代码,当应用程序打开时它对我来说工作正常,我需要获取此地理位置并在应用程序在后台时将其发送到服务器,因此使用后台模式科尔多瓦请参阅背景模式文档链接。
- 我正在获取地理位置,并在应用程序打开时发送到服务器工作正常。
- 我也在应用程序状态中使用了暂停和恢复科尔多瓦,就像在本机 android 中一样。
- 当应用程序处于暂停状态时,我在 onactivate() 中使用了后台启用(),给定间隔并获取地理位置并发送到服务器。
- 一旦应用程序进入暂停并返回恢复应用程序,应用程序就会获得地理位置并完美地发送到服务器。
app.run(['$rootScope', '$location','$mdToast','$cordovaPush', '$sessionStorage', '$cordovaDevice',
'$cordovaLocalNotification', '$timeout','$cordovaGeolocation','$interval','Service',
function($rootScope, $location,$mdToast,$cordovaPush, $sessionStorage, $cordovaDevice,
$cordovaLocalNotification, $timeout,$cordovaGeolocation,$interval,Service) {
document.addEventListener("resume", function() {
console.log("The application is resuming from the background");
cordova.plugins.backgroundMode.disable();
}, false);
document.addEventListener("pause", function() {
console.log("The application is pausing to the background");
cordova.plugins.backgroundMode.enable();
}, false);
var i=0;
cordova.plugins.backgroundMode.onactivate = function () {
console.log("notificationReceived");
setInterval(function () {
console.log("interval: "+ i++);
var posOptions = {timeout:3000,enableHighAccuracy: false};
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function (position) {
var GeoLocation=new Object();
GeoLocation.geo_location_latitude=position.coords.latitude;
GeoLocation.geo_location_longitude=position.coords.longitude;
Service.CurrentService(GeoLocation).success(function(data){
console.log(new Date());
console.log("cur loc: "+JSON.stringify(data));
}).error(function(data){
console.log("error: "+JSON.stringify(data));
})
}, function(err) {
console.log("Error: "+err);
// here Position Error Occurs
// error
});
},60000);
}
})];
错误是当应用程序关闭或暂停时,收到位置错误消息:获取地理位置且未将数据发送到服务器时超时。请参阅此编码并指导我完成此操作。提前谢谢你。
你可以试试这个:
app.run(['$rootScope', '$location','$mdToast','$cordovaPush', '$sessionStorage', '$cordovaDevice',
'$cordovaLocalNotification', '$timeout','$cordovaGeolocation','$interval','Service',
function($rootScope, $location,$mdToast,$cordovaPush, $sessionStorage, $cordovaDevice,
$cordovaLocalNotification, $timeout,$cordovaGeolocation,$interval,Service) {
document.addEventListener("resume", function() {
console.log("The application is resuming from the background");
cordova.plugins.backgroundMode.disable();
}, false);
document.addEventListener("pause", function() {
console.log("The application is pausing to the background");
cordova.plugins.backgroundMode.enable();
}, false);
var i=0;
cordova.plugins.backgroundMode.onactivate = function () {
console.log("notificationReceived");
setInterval(function () {
console.log("interval: "+ i++);
var posOptions = {timeout:3000,enableHighAccuracy: true};
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function (position) {
var geo = {};
geo.location_latitude=position.coords.latitude;
geo.location_longitude=position.coords.longitude;
Service.CurrentService(geo).success(function(data){
console.log(new Date());
console.log("cur loc: "+JSON.stringify(data));
}).error(function(data){
console.log("error: "+JSON.stringify(data));
})
}, function(err) {
console.log("Error: "+err);
// here Position Error Occurs
// error
});
},60000);
}
})];
或者您可以更改:
$http({
url : 'yourserverURL',
method: 'POST',
data: obj,
header:{'Content-Type':'application/json; charset=utf-8'}
}).success(function (data,status,headers,config){
console.log(new Date());
console.log("cur loc: "+JSON.stringify(data));
}).error(function (data,status,headers,config){});
相反
Service.CurrentService(geo).success(function(data){
console.log(new Date());
console.log("cur loc: "+JSON.stringify(data));
}).error(function(data){
console.log("error: "+JSON.stringify(data));
})
**您也可以尝试将其放置在控制器中
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 加载初始网站后在后台加载数据
- Jquery Ajax在后台运行的多个页面上发布数据
- Chrome扩展程序:将数据存储在后台
- Angular js cordova地理位置获取当前位置并在后台将数据发送到服务器
- Chrome扩展程序:在后台提取数据并存储在数据库中
- 如何从与后台页面中的JS变量位于同一文件夹中的文件中获取数据
- Chrome扩展,从内容到后台传递数据
- 在谷歌地图上的某个点显示来自后台csv的风数据
- 如何在后台存储Node JS Buffer数据
- Webview在android中从后台加载数据
- Chrome扩展程序:从弹出窗口在后台保存数据属性
- 在HTML5应用程序中下载后台数据到浏览器数据库- settimeout vs工作线程