当app在后台时,Meteor得到地理定位

时间:2015-04-01 18:59:24

标签: cordova meteor

我想创建一个非常简单的iphone应用程序,每分钟读取设备的地理位置并将其插入Mongo集合中。我已经遇到this meteor geolocation background package,但我不明白它是如何工作的。

问题:

  1. 在这种情况下,GeolocationBG.config会是什么样子?
  2. 我究竟如何插入数据?我不知道GET和POST方法,因为我不是来自PHP世界(从Meteor开始)。
  3. 有没有办法在后台运行一段通用的Meteor代码?那完全可以帮到我。
  4. 非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

试试这个。

首先你应该配置它。

if (Meteor.isCordova) {
  GeolocationBG.config({
    url: 'https://localhost:3000/api/geolocation',
    debug: false //or true if you want to see logs
  });

 //here we are starting the service each 1 minute
  Meteor.setTimeout(function(){
   GeolocationBG.start();
   Session.set('geoStart',true); //Trigger a Session when the service start
  }, 60000);

  //This is how we stop the service.
  Tracker.autorun(function(){
    if (Session.get('geoStart')){
     GeolocationBG.stop();
     Session.set('geoStart',false);
    }
  })
}

这里有每分钟读取设备的地理位置行为。

现在并将其插入Mongo集合步骤。

首先创建一个集合。

//Global collection put it on a lib folder or a very top if(Meteor.isServer/Client)

GeoLog = new Mongo.Collection('GeoLog');

现在在server执行以下操作(如果删除自动发布包)。

Meteor.publish('geoData',function(){
  return GeoLog.find();
})

现在在客户端(插入部分和订阅)

//You can place the subscript into the lib folder inside a if(Meteor.isClient);
//or inside a Meteor.startup.

Meteor.startup(function(){
  Meteor.subscribe('geoData')
})



 //Did you remember the Meteor.setTimeout? on the if(Meteor.isCordova)?, lets update it.

Meteor.setTimeout(function(){
   GeolocationBG.start();
   GeolocationFG.get(function(location) {
                 GeoLog.insert({
                  location: location,
                  uuid: GeolocationBG.uuid(),
                  device: GeolocationBG.device(),
                  //userId: Meteor.userId(), optional
                  created: new Date()
                });
            });
   Session.set('geoStart',true); //Trigger a Session when the service start
  }, 60000);

您可以在事件处理程序中使用GeolocationFG.get(function(location) {});,例如button

注意:这只是一个想法,我只使用if(Meteor.isCordova)因为您说非常简单的iPhone应用