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();
};
リブート後に設定のオプション 'url'を使用してデバイスの場所を取得できました。再起動後にコールバック機能が無効になりますが、設定オプションを使用してデバイスの場所を送信すると、デバイスはその場所をサーバーに送信します。設定でオプション 'url'を使用してみてください。 – smchae
watchPosition関数のようなコールバック関数を使用する方法は、アプリケーションがバックグラウンドで実行されているときに定期的に特定の間隔を置いてデバイスの位置を取得したいということです。ポリライン。 –