有人可以帮我这个cordova sqlite数据库吗?它在android工作正常,但在ios我无法运行下面的代码..我已经尝试了 window.openDatabase 和 window.sqlitePlugin.openDatabase ( included cordova plugin cordova-sqlite-storage) ,
我在设备中得到 alert('start') 而不是 alert('dbalert END') ....并且应用程序卡在这里任何人都可以帮助这个......这是 occurs only in IOS
在我的app.js中,我在我的应用程序内的deviceready事件中调用了DB.init() .
我正在使用带有cordova 4.x> IOS的IONIC框架,此问题仅在IOS中出现,在android中完美运行
angular.module('Busslip').factory('DB', function($q, DB_CONFIG)
{
var self = this;
self.db = null;
self.init = function() {
//Use in production
alert('start');
self.db = window.sqlitePlugin.openDatabase({name: DB_CONFIG.name});
alert('dbalert END');
alert(DB_CONFIG.name); //// here i get DB in alert
//self.db = window.openDatabase(DB_CONFIG.name);
//self.db = window.openDatabase(DB_CONFIG.name, '1.0', 'database', -1);
//self.db = window.sqlitePlugin.o penDatabase(DB_CONFIG.name, '2');
alert('dbalert END');
angular.forEach(DB_CONFIG.tables, function(table) {
var columns = [];
angular.forEach(table.columns, function(column) {
columns.push(column.name + ' ' + column.type);
});
var query = 'CREATE TABLE IF NOT EXISTS ' + table.name + ' (' + columns.join(',') + ')';
self.query(query);
console.log('Table ' + table.name + ' initialized');
});
};
self.query = function(query, bindings) {
bindings = typeof bindings !== 'undefined' ? bindings : [];
var deferred = $q.defer();
self.db.transaction(function(transaction) {
transaction.executeSql(query, bindings, function(transaction, result) {
deferred.resolve(result);
}, function(transaction, error) {
deferred.reject(error);
});
});
return deferred.promise;
};
self.fetchAll = function(result) {
var output = [];
for (var i = 0; i < result.rows.length; i++) {
output.push(result.rows.item(i));
}
return output;
};
self.fetch = function(result) {
return result.rows.item(0);
};
return self;
})