私のプロジェクトではバックグラウンドモードのプラグインを使用しています。Cordova - イオンバックグラウンドモードプラグインでの問題
デバイスが[deviceready mode]になっているときに、デバイスのジオロケーションをデータベースに挿入します。
ユーザーが[バックグラウンド/一時停止]モードに切り替わると、デバイスのジオロケーションはデータベースに挿入されません。
ジオロケーションは、3秒ごとにデータベースに挿入されます。
デバイスモードを[バックグラウンド]モードに切り替えると、データベースにジオロケーションを挿入したままになります。
問題が何ですか?
var app = angular.module('starter', ['ionic', 'ngCordova']);
var globLat;
var globLong;
var db = null;
app.run(function ($ionicPlatform, $cordovaSQLite) {
$ionicPlatform.ready(function() {
if (cordova.platformId === "ios" && window.cordova && window.cordova
.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
db = window.openDatabase("mobileDB", "1.0", "Cordova Demo",
200000);
$cordovaSQLite.execute(db,
"CREATE TABLE IF NOT EXISTS coords (latDB float , longDB float)"
);
/*
var query = "INSERT INTO coords (latDB, longDB) VALUES (?,?)";
$cordovaSQLite.execute(db, query, [globLat, globLong]); */
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
setInterval(function() {
var query =
"INSERT INTO coords (latDB, longDB) VALUES (?,?)";
$cordovaSQLite.execute(db, query, [globLat, globLong]);
}, 3000);
}
});
})
app.controller('GeoCtrl', function ($cordovaGeolocation, $cordovaSQLite) {
var posOptions = {
timeout: 10000,
enableHighAccuracy: false
};
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function (position) {
var lat = position.coords.latitude
var long = position.coords.longitude
globLat = lat;
globLong = long;
// alert("latitude is : " + globLat + "and longitude is :" + globLong);
}).then(
function initMap() {
var uluru = {
lat: globLat,
lng: globLong
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 18,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
});
});
注:
私はonDeviceReady()
が行うすべてのデバイスの準備ができているかどうかをチェックされ、そうであっても、デバイスモード
はい、すでにgeolocationプラグインを使用しています。 デバイスがバックグラウンドモードになっているときにのみジオロケーションが挿入されている必要があります。 – saifaldeen
その後、上記のコードは使用されていたと言及されていませんでした。 – Olli
私はコードを更新しました:) – saifaldeen