我为我的应用程序使用sqlite插件,数据库包含3个表。 在桌面上,一切正常,应用程序访问'数据。但是,我没有在文件夹中找到数据库,当我的设备上运行时,app / package文件夹中没有数据库。
这是我的代码:
app.js:
var db=null;
var myApp = angular.module('starter', ['ionic', 'ngCordova'])
myApp.run(function($ionicPlatform, $cordovaSQLite) {
$ionicPlatform.ready(function() {
...
if (window.cordova) {
db = $cordovaSQLite.openDB({ name: "my.db", location: 1, iosDatabaseLocation: 'default' }); //device
}else{
db = window.openDatabase("my.db", '1', 'my', 1024 * 1024 * 100); // browser
}
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS Utilisateur (id integer primary key, cleapi integer, siret integer)");
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS Avis (id integer primary key, siret integer, note integer, date text, reference text, titre text, texte text )");
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS InfosAdherent (id integer primary key, notegenerale integer, nbavis integer, avispos integer, avisneu integer, avisneg integer, datedebut text )");
});
})
.controller('CtrlConnexion', function($scope, $cordovaNetwork, $rootScope,$http, $cordovaSQLite) {
document.addEventListener("deviceready", function () {
if (window.cordova) {
db = $cordovaSQLite.openDB({ name: "my.db", location: 'default', iosDatabaseLocation: 'default' }); //device
}else{
db = window.openDatabase("my.db", '1', 'my', 1024 * 1024 * 100); // browser
}
var query = "INSERT INTO Utilisateur (id,cleapi,siret) VALUES (1,1234,73282932000074)";
$cordovaSQLite.execute(db, query).then(function(res) {
console.log("ok uti");
alert("ok uti");
}, function (err) {
console.error(err);
console.log("pas ok user");
});
var query1 = "INSERT INTO Avis (id,siret, note, date, reference,titre, texte) VALUES (1,73282932000074,3,'24/12/2013','REFREDF','Titreavis','texteavis')";
$cordovaSQLite.execute(db, query1).then(function(res) {
console.log("ok avis");
alert("ok avis");
}, function (err) {
console.error(err);
console.log("pas ok avis");
});
var query2 = "INSERT INTO InfosAdherent (id,notegenerale,nbavis,avispos,avisneu,avisneg,datedebut) VALUES (1,4,6,2,3,1,'11/04/2011')";
$cordovaSQLite.execute(db, query2).then(function(res) {
console.log("ok infos");
alert("ok infos");
}, function (err) {
console.error(err);
console.log("pas ok infos");
});
$scope.network = $cordovaNetwork.getNetwork();
$scope.isOnline = $cordovaNetwork.isOnline();
$scope.$apply();
// Si on est en ligne
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
$scope.isOnline = true;
$scope.network = $cordovaNetwork.getNetwork();
$scope.$apply();
})
// Si on est hors ligne
$rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
console.log("got offline");
$scope.isOnline = false;
$scope.network = $cordovaNetwork.getNetwork();
$scope.$apply();
})
console.log(FileTransfer);
}, false);
})
login.html(没什么特别的)
<ion-view class="panelogin" title="Login" ng-controller="LoginCtrl">
<ion-content style="margin:30px;" scrollbar-x="false" scrollbar-y="false" overflow-scroll="false">
login form
...
<button nav-clear class="button button-block button-energized" ng-click="LogIn()">
Go !
</button>
</ion-content>
</ion-view>
index.html:
<!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
<link href="css/ionic.app.css" rel="stylesheet">
-->
<script type="text/javascript" src="plugins/cordova-sqlite-storage/www/SQLitePlugin.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<!-- your app's js -->
<script src="js/app.js"></script>
我尝试了很多解决方案(在设备就绪,db init args位置,...)但没有任何作用。在我的www文件夹中没有my.db,认为通过chrome可以看到表内容是神奇的。
希望有人可以帮助我^^
干杯
答案 0 :(得分:1)
如果您正在使用Chrome调试应用,可以通过打开开发人员工具(Ctrl + Shift + J)然后转到左侧面板上的“资源”选项卡来查看您的SQLite数据库。选项称为Web SQL,所有数据库都应列在那里。
在设备中并不是那么简单,要在Android设备上看到这个数据库应该是root用户,你需要一个根文件管理器来访问以下文件夹:
数据/数据/ [包名] /数据库
答案 1 :(得分:0)
好的Android,所以该文件在设备上,但我们无法看到它? (在ios平台my.db中)