2017-04-12 6 views
0

私はバックグラウンドジオロケーションプラグインhttps://github.com/mauron85/cordova-plugin-background-geolocationでイオンアプリを構築しています。コードバック背景geolocationプラグイン再起動時

再起動後にその場所を送信するようにアプリを作りたいと思っています。使用しているプラ​​グインにオプションがあるようですが、正しく動作していません。アプリは、起動するたびに少なくとも1回はアプリを実行した後にのみ、その場所をサーバーに送信します。

ご意見やご提案をいただければ幸いです。前もって感謝します!

私のコードは、私は、これはあまりにも他人を助けるかもしれない投稿、あなたが今では、あなたの答えを見つけただろう願っています

設定

backgroundGeolocation.configure(callbackFn, failureFn, { 
      locationProvider: backgroundGeolocation.provider.ANDROID_ACTIVITY_PROVIDER, 
      desiredAccuracy: 10, 
      stationaryRadius: 10, 
      distanceFilter: 10, 
      interval: 60000, 
      maxLocations: 50, 
      startOnBoot: true, // from my understanding, this should make an app track its location even after reboot 
      stopOnTerminate: false 
}); 

コールバック関数

var callbackFn = function(location) { 
     console.log('[js] BackgroundGeolocation callback: ' + location.latitude + ',' + location.longitude); 

     // Do your HTTP request here to POST location to your server. 
     var link = API_URL; 

     $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"; 

     $http({ 
      method: 'POST', 
      url: link, 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
      transformRequest: function(obj) { 
       var str = []; 
       for(var p in obj) 
       str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
       return str.join("&"); 
      }, 
      params: { 
       'device': 'android', 
      }, 
      data: { 
       lat:location.latitude, 
       lng:location.longitude, 
      } 
     }).success(function(data){ 
      console.log(data); 
     }).error(function(data){ 
      console.log(data); 
     }); 

     backgroundGeolocation.finish(); 
    }; 

答えて

1

を下回っています。

再起動後にコールバックが実行されるとは限りません。アクティビティが強制終了される可能性があるため、代わりにurlオプションを使用してサーバーに場所の更新を送信してください。

+0

リブート後に設定のオプション 'url'を使用してデバイスの場所を取得できました。再起動後にコールバック機能が無効になりますが、設定オプションを使用してデバイスの場所を送信すると、デバイスはその場所をサーバーに送信します。設定でオプション 'url'を使用してみてください。 – smchae

+0

watchPosition関数のようなコールバック関数を使用する方法は、アプリケーションがバックグラウンドで実行されているときに定期的に特定の間隔を置いてデバイスの位置を取得したいということです。ポリライン。 –

関連する問題