2017-11-20 110 views
10

İyonik için arka plan konum belirleme eklentisi güncellenmiyor. İstediğim işlevsellik her 30 saniyede mevcutsa, bir lat lng değeri için eklentiyi soruyor. Sorun şu ki, sadece başlangıçta değerleri veriyor ve arka plan duruyor. Ön plan iyi, gerçekten arka plan. Temel olarak arka planda ilk ilk gönderimden sonra istekleri gönderemiyorum.background geolocation ionic 3 güncellenmiyor

gps.ts

startTracking() { 

    console.log('started tracking') 
    const config: BackgroundGeolocationConfig = { 
     desiredAccuracy: 10, 
     stationaryRadius: 20, 
     distanceFilter: 30, 
     debug: false, // enable this hear sounds for background-geolocation life-cycle. 
     stopOnTerminate: false 
    }; 

    this.backgroundGeolocation.configure(config) 
    .subscribe((location: BackgroundGeolocationResponse) => { 


     this.zone.run(() => { 
     this.lat = location.latitude 
     this.lng = location.longitude 
     this.bearing = location.bearing 
     this.speed = location.speed 
     this.accuracy = location.accuracy 
     this.timestamp = location.time 
     }) 


     this.backgroundGeolocation.finish(); // FOR IOS ONLY 
     this.backgroundGeolocation.stop() 

     }); 


    this.backgroundGeolocation.start(); 

    } 

sendGPS(){ 
this.optionsService.sendGPS(gpsData).subscribe(result => { 
      } 
     }) 
} 

stopTracking() { 

    this.sendGPS() 
} 

örnekler dnchia/Ionic3-Background-Geolocation örneğin at arka plan üzerinde aralığı yapılandırmak yanı periyodik ön planda olarak göndereceği Looking

constructor(){ 
this.sendGPSStart() 
this.interval() 
} 

sendGPSStart(){ 
    this.locationTracker.startTracking(); 
    } 

    sendGPSStop(){ 
    this.locationTracker.stopTracking(); 
} 

interval(){ 
setInterval(() => { 
     this.sendGPSStart() 
      this.sendGPSStop() 
    }, '30000') 

} 

cevap

1

app.component.ts

gps.ts

startTracking(interval) { 

    console.log('started tracking') 
    const config: BackgroundGeolocationConfig = { 
     desiredAccuracy: 10, 
     stationaryRadius: 20, 
     distanceFilter: 30, 
     debug: false, // enable this hear sounds for background-geolocation life-cycle. 
     stopOnTerminate: false, 
     interval: interval 
    }; 

interval = 30000; 

constructor() { 
    this.sendGPSStart() 
    this.interval() 
} 

sendGPSStart(){ 
    this.locationTracker.startTracking(this.interval); 
} 

sendGPSStop(){ 
    this.locationTracker.stopTracking(); 
} 

interval() { 
    setInterval(() => { 
    this.locationTracker.sendGPS(); 
    }, this.interval) 

} 
+0

Ne yazık ki, bu yaklaşım sadece Android'de çalışır. – userlkjsflkdsvm