gpt4 book ai didi

angular - Ionic 3 - 使用 --prod 标志运行时,sqlite 显示错误 "can not read property of openDatabase"

转载 作者:行者123 更新时间:2023-12-03 19:23:44 26 4
gpt4 key购买 nike

我正在使用 cordova-sqlite-ext在 ionic 3 项目中。我的代码在没有 --prod 的情况下运行正常旗帜。

但是当我运行 ionic cordova run android --prod --relase它显示“无法读取 openDatabase 的属性”

这是我的代码

  export class SqlLiteServiceProvider {
private options = {name: 'db.db', location: 'default',existingDatabase: 1,createFromLocation:1};
public win = (<any>window);
private db : any;

constructor() {
try{
if(this.win.cordova){
this.db = this.win.sqlitePlugin.openDatabase(this.options);

}else{
this.db = this.win.openDatabase(this.options.name, '1.0', 'database', 5 * 1024 * 1024);
}
}catch(ex){
alert(ex); // always alert error when run with --prod flag
}
}
}

最佳答案

当您进行生产构建时,window据我所知,对象的处理方式不同。当使用不包含在 ionic-native 中的 cordova-plugins 时,您需要做一些不同的事情。

告诉 typescript 你确定你的插件句柄存在于构建之后的某个地方:

declar var SQLitePlugin; // add this at the same level as imports

例如在 ngOnInit() 中使用它:
ngOnInit() {
SQLitePlugin.openDatabase(...);
}

但我强烈建议您不要这样做,而是使用 @ionic/storage @ionic-native/sqlite .

关于angular - Ionic 3 - 使用 --prod 标志运行时,sqlite 显示错误 "can not read property of openDatabase",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46281419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com