【发布时间】:2016-02-26 02:40:48
【问题描述】:
我正在为汽车司机制作一个带有 ionic 的应用程序。该应用程序每分钟获取一次坐标并将它们写入远程服务器,这有助于我跟踪路线并在 Google 地图上显示汽车。
我使用 Cordova 插件,它工作正常,除非屏幕关闭或应用程序进入后台。我安装了 katzer cordova-plugin-background-mode,当应用程序进入后台时,我看到消息:应用程序现在在后台,插件通知我,但没有别的,应用程序停止了! .
没有数据发送到远程服务器,当我恢复应用程序时一切恢复正常,我使用的是 Android 平台。我该如何解决?
app.js 代码
angular.module('starter', ['ionic', 'ngCordova','LocalStorageModule', 'starter.controllers', 'starter.services'])
.run(function ($ionicPlatform) {
$ionicPlatform.ready(function () {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleLightContent();
}
cordova.plugins.backgroundMode.enable();
});
})
.....
controllers.js
angular.module('starter.controllers', [])
.controller('GeoCtrl', function($scope, $cordovaGeolocation, $cordovaNetwork, $http, $interval) {
var reloadCoordinates = function() {
var watchOptions = {
timeout : 10000,
enableHighAccuracy: false // may cause errors if true
};
var watch = $cordovaGeolocation.watchPosition(watchOptions);
watch.then(
null,
function(err) {
// error
},
function(position) {
//Latitudine e Longitudine
var lat = position.coords.latitude
var lon = position.coords.longitude
$scope.latitude = lat
$scope.longitude = lon
$http.post('http://192.168.1.2/get-data.php', { "lat": lat, "lon" : lon }).then(function(resp) {
console.log('Success Lat:'+resp.data.lat+' Lon:'+resp.data.lon);
watch.clearWatch();
}, function(err) {
console.error('ERR', err);
// err.status will contain the status code
})
});
};//end reloadCoordinates
$interval(reloadCoordinates, 60000);
reloadCoordinates();
})
【问题讨论】:
-
请参考link 当我使用媒体播放器播放歌曲时,后台活动为我解决了
-
谢谢 Anil,我检查了一下,发现后台模式插件工作正常,具体取决于按下的智能手机按钮,例如在我的单页应用程序中:返回按钮 -> 从应用程序退出;主页按钮 - > 应用程序进入后台,图标出现在状态栏中。在这两种情况下,插件都会显示消息:应用程序在后台运行,这可能会使驱动程序在使用应用程序时感到困惑
-
好的,当你想使用地图时,你可以做一件事激活上面的插件代码
-
我也遇到了同样的问题,如果没有,我会在激活和停用插件时附上我的示例代码
标签: android cordova ionic-framework