我使用Ionic3 + AngularJS构建了一个混合应用程序,它使用了SQLite数据库。
当我在Android设备上运行该应用程序时,它可以正常运行,但是当我尝试在iPhone或iPad上运行该应用程序时,出现以下错误: plugin_not_installed 。当应用尝试创建数据库时就会发生这种情况。
这是创建数据库的方式:
public getDB(){
return this.sqlite.create({
name: 'namedatabase.db',
location: 'default'
}).catch( error => this.showError(error));
}
catch()被调用,并且显示错误消息“ plugin_not_installed”。
使用以下命令安装的SQLite
$ ionic cordova plugin add cordova-sqlite-storage
$ npm install --save @ionic-native/sqlite
有什么想法吗?
答案 0 :(得分:0)
使用
在android模拟器中运行我的应用程序时,我遇到了同样的问题ionic cordova运行android -lc
启动应用后,一切正常。但是在对代码和保存命令进行了几处更改之后,该应用会重新加载并显示在控制台中
console.warn:离子本机:deviceready在5000毫秒内未触发。当插件处于不一致状态时,可能会发生这种情况。尝试从plugins中删除插件,然后重新安装。
console.warn:'本机:尝试访问SQLite插件,但未安装。
console.warn:安装SQLite插件:'ionic cordova插件添加cordova-sqlite-storage'
console.log:错误“ plugin_not_installed”
即使我按照控制台的要求进行操作,我仍然遇到相同的错误,并且无法创建我的SQLite数据库
我接下来要做的是使用上面的run命令重新运行该应用程序,但是我浪费了很多时间来等待该应用程序重新启动...(:
createDBFile() {
this.sqlite.create({
name: DB_NAME,
location: 'default'
}).then((db: SQLiteObject) => {
this.db = db;
console.log('BDD cree')
this.stockageLocal.get('dbstatus').then(opened => {
if (opened) {
console.log('DB deja ouvert');
}
else {
console.log('create all table')
this.createTables();
}
})
}).catch(err => {
console.log(' err', JSON.stringify(err))
});
}
答案 1 :(得分:0)
我遇到了同样的问题:plugin_not_installed。 我解决了在答应错误之后放入console.log检查,并发现该表不存在的情况。
代码:
this.sqlite.create({
name: 'ionicdb.db',
location: 'default'
})
.then((db: SQLiteObject) => {
db.executeSql('create table if not exists MY_SQLITE_STORAGE(key VARCHAR(32) PRIMARY KEY, value VARCHAR(32))', [])
.then(() => {
console.log('Executed Create table if not exists');
this.toastCtrl.create({
message: 'Table created ',
duration: 5000,
position: 'center'
}).present();
}).catch(e => console.log('error: '+JSON.stringify(e)));
}).catch(e => console.log('error: '+JSON.stringify(e)));