您可以使用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何時開始。 –
我有這樣的問題。用戶啓動此服務並關閉應用程序而不停止服務。之後,用戶再次打開該應用程序並嘗試再次啓動服務。然後我必須通知用戶這項服務已經陳述了。我該怎麼做這樣的事情? 我對科爾多瓦很新,請幫忙.. –