您可以使用ng-cordova geolocation守望做到这一点,手表地理位置属性,如纬度,经度和速度。
第一intall NG-科尔多瓦和它注入
bower install ngCordova
angular.module('myApp', ['ngCordova'])
然后安装地理位置插件
cordova plugin add org.apache.cordova.geolocation
那么你想创建一个观察者,确保设备就绪事件之后触发,或它会引起问题
这就是设备就绪功能看起来像
document.addEventListener("deviceready", function() {
$cordovaPlugin.someFunction().then(success, error);
}, false);
这里是观察者控制器:
module.controller('GeoCtrl', function($cordovaGeolocation) {
var watchOptions = {
frequency : 1000,
timeout : 3000,
enableHighAccuracy: false // may cause errors if true
};
var watch = $cordovaGeolocation.watchPosition(watchOptions);
watch.then(
null,
function(err) {
// error
},
function(position) {
var lat = position.coords.latitude
var long = position.coords.longitude
});
watch.clearWatch();
// OR
$cordovaGeolocation.clearWatch(watch)
.then(function(result) {
// success
}, function (error) {
// error
});
});
当你看着自己的地理位置信息,你可以把它变成一个本地数据库像http://pouchdb.com/或沙发数据库或服务器数据库。如果你想在应用程序中的任何状态下使用这个你可以把它变成一个服务, 这里是一个程序,我建
service.watchSpeed = function() {
console.log('watcher');
ionic.Platform.ready(function() {
var watchOptions = {
frequency: 15 * 60 * 1000,
timeout: 1 * 60 * 1000,
enableHighAccuracy: true // may cause errors if true
};
service.watch = $cordovaGeolocation.watchPosition(watchOptions);
service.watch.then(
null,
function (err) {
service.watchSpeed();
},
function (position) {
if (service.maxspeed.ToUseApp !== 0) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
var speed = position.coords.speed;
service.speed = speed;
if (speed > service.maxspeed.ToUseApp) {
$state.go('overspeed');
}
if ($ionicHistory.currentStateName() === 'overspeed' && speed < service.maxspeed.ToUseApp) {
$ionicHistory.goBack();
}
} else {
console.log('speed watcher has been killed, why master??');
}
});
});
};
然后在我的家乡控制器我所说的守望
ionic.Platform.ready(function() {
ffService.getMaxSpeed();
});
为例
有没有办法检查这项服务是否已经开始..? –
是的,看看我的控制台日志(观察者)在哪里告诉你Geowatcher何时开始。 –
我有这样的问题。用户启动此服务并关闭应用程序而不停止服务。之后,用户再次打开该应用程序并尝试再次启动服务。然后我必须通知用户这项服务已经陈述了。我该怎么做这样的事情? 我对科尔多瓦很新,请帮忙.. –