Uma alternativa para trabalhar com banco de dados interno do celular no curso é apresentado WebSQL, eu preciso armazenar primeiramente internamente no celular para depois enviar para servidor, é possível utilizando o WebSQL?
Uma alternativa para trabalhar com banco de dados interno do celular no curso é apresentado WebSQL, eu preciso armazenar primeiramente internamente no celular para depois enviar para servidor, é possível utilizando o WebSQL?
Como mostrado no curso, vc pode sim salvar dados no celular usando o WebSQL. Depois que o dado estiver armazenado, vc pode fazer oq quiser com ele: Enviar para um backend, deixar ele salvo no celular, alterar esse dado, etc.
Não consigo salvar as informações usando webSQL.
Controller
angular.module('starter')
.controller('TipoDadoAmostraController', function($scope,$stateParams,$state,$cordovaGeolocation,$ionicPopup,FieldService,$ionicHistory,DatabaseValues) {
$scope.categoria_id = angular.fromJson($stateParams.categoria_id);
var categoria_tipo = $scope.categoria_id;
var usuario_id = window.localStorage.getItem("id");
$scope.amostra = {};
var options = {timeout: 10000, enableHighAccuracy: true};
$cordovaGeolocation.getCurrentPosition(options).then(function (position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
$scope.amostra.lat = lat;
$scope.amostra.lng = long;
},function(err) {
$ionicPopup.alert({
title : 'Erro!',
template : 'Impossível pegar a coordenada.'
}).then(function(){
$state.go('app.tipo');
})
});
$scope.fazerAmostra = function(){
if(categoria_tipo == 1){
var amostra = {
params : {
user_id : usuario_id,
cod_amostra : $scope.amostra.cod_amostra,
tipo_dado_id : categoria_tipo,
latitude : $scope.amostra.lat,
longitude : $scope.amostra.lng,
profundidade : $scope.amostra.profundidade,
tipo : $scope.amostra.tipo,
observacao : $scope.amostra.dados_adicionais
}
}
}else if(categoria_tipo == 2){
var amostra = {
params : {
user_id : usuario_id,
cod_amostra : $scope.amostra.cod_amostra,
tipo_dado_id : categoria_tipo,
latitude : $scope.amostra.lat,
longitude : $scope.amostra.lng,
altura : $scope.amostra.altura,
observacao : $scope.amostra.dados_adicionais
}
}
}
else if(categoria_tipo == 3){
var amostra = {
params : {
user_id : usuario_id,
cod_amostra : $scope.amostra.cod_amostra,
tipo_dado_id : categoria_tipo,
latitude : $scope.amostra.lat,
longitude : $scope.amostra.lng,
profundidade : $scope.amostra.profundidade,
observacao : $scope.amostra.dados_adicionais
}
}
}else if(categoria_tipo == 4){
var amostra = {
params : {
user_id : usuario_id,
cod_amostra : $scope.amostra.cod_amostra,
tipo_dado_id : categoria_tipo,
latitude : $scope.amostra.lat,
longitude : $scope.amostra.lng,
especie : $scope.amostra.especie,
observacao : $scope.amostra.dados_adicionais
}
}
}
else if(categoria_tipo == 5){
var amostra = {
params : {
user_id : usuario_id,
cod_amostra : $scope.amostra.cod_amostra,
tipo_dado_id : categoria_tipo,
latitude : $scope.amostra.lat,
longitude : $scope.amostra.lng,
familiageneroespecie : $scope.amostra.familiageneroespecie,
observacao : $scope.amostra.dados_adicionais
}
}
}
console.log(amostra);
FieldService.salvarAmostra(amostra).then(function(dados){
$scope.salvarDadosNoBancoDeDados('true');
$ionicHistory.nextViewOptions({
disableBack : true
})
$ionicPopup.alert({
title: 'Field Note',
template: 'Você acaba de enviar uma amostra.'
}).then(function(){
$state.go('app.tipo');
});
}, function(erro){
$scope.salvarDadosNoBancoDeDados('false');
$ionicHistory.nextViewOptions({
disableBack : true
})
$ionicPopup.alert({
title : 'Ops!',
template : 'Servidor com problemas. Tente mais tarde.'
}).then(function(){
$state.go('app.tipo');
})
});
$scope.salvarDadosNoBancoDeDados = function(confirmado){
DatabaseValues.setup();
DatabaseValues.bancoDeDados.transaction(function(transacao){
transacao.executeSql('INSERT INTO amostra_agua(cod_amostra, latitude, longitude, data_hora, observacao,tipo,profundidade,confirmado) VALUES (?,?,?,?,?,?,?,?)', [$scope.amostra.cod_amostra, $scope.amostra.lat,$scope.amostra.lng, $scope.amostra.dados_adicionais,$scope.amostra.profundidade,$scope.amostra.tipo, confirmado])
})
}
}
});
Dei um console.log e as informações são carregadas, ele simplesmente não salva, DatabaseValues
angular.module('starter')
.value('DatabaseValues', {
setup : function(){
this.bancoDeDados = window.openDatabase('fieldnote', '1.0', 'Banco de dados da aplicacao', 3000);
}
})
coloquei no APP já para cria as tabelas, ele cria lá, porém não consigo salvar. OBS: Estou tentando salvar no celular as informações do parametro.