0
我在我的項目中使用背景模式插件。Cordova中的問題 - 離子背景模式插件
我想在設備處於[deviceready mode]時將設備的地理位置插入到數據庫中。
當用戶切換到[background/pause]模式時,設備的地理定位將不會被插入到數據庫中。
地理位置每三秒鐘插入數據庫。
當我將設備模式切換到[背景]模式時,它不斷插入地理位置到數據庫。
有什麼問題?
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
});
});
});
注:
我使用的Visual Studio 2015年紋波仿真器切換設備模式
是的,但我已經使用地理位置插件。 我只需要在設備處於後臺模式時插入的地理位置。 – saifaldeen
然後請放上完整的代碼,上面的代碼沒有提及正在使用哪個以及它如何使用。 – Olli
我已經更新了代碼:) – saifaldeen