Cordova-plugin-sqlite-2 和 Cordova-sqlite-Storage 有什么区别?



在本教程中,要将SQLite与PouchDB一起使用,使用的cordova插件是cordova-plugin-sqlite-2。同时,在另一个在Ionic中使用SQLite的教程中,使用的cordova插件是cordova-sqlite-storage

这两个插件到底有什么区别?

是否可以将cordova-sqlite-storage与PouchDB一起使用而不是cordova-plugin-sqlite-2

当我想使用Ionic 5 Native SQLite插件(作为第二教程(时,是否可以使用cordova-sqlite-plugin-2




更新

我尝试创建一个使用PouchDB的应用程序,并安装了cordova-sqlite-storage插件而不是cordova-plugin-sqlite-2,因为我想同时使用Ionic Native SQLite。当应用程序启动时,我得到一个错误如下:

ERROR Error: Uncaught (in promise): {"status":500,"name":"web_sql_went_bad","message":"unknown","reason":"Invalid database handle"}
at resolvePromise (zone-evergreen.js:797:1)
at resolvePromise (zone-evergreen.js:754:1)
at zone-evergreen.js:858:1
at ZoneDelegate.invokeTask (zone-evergreen.js:391:1)
at Object.onInvokeTask (core.js:34182:1)
at ZoneDelegate.invokeTask (zone-evergreen.js:390:1)
at Zone.runTask (zone-evergreen.js:168:1)

我还在我的项目中安装了pouchdb-adapter-cordova-sqlite。根据pouchdb适配器cordova sqlite,它应该与cordova-sqlite-storage一起工作;

PouchDB适配器使用本机Cordova SQLite作为其后备存储。它可与以下任何一个Cordova插件配合使用:

  • Cordova sqlite存储
  • cordova-lugin-sqlite-2
  • cordova插件websql

当我切换到使用cordova-sqlite-storage时,为什么会出现此错误?

确保只有一个插件。

我得到的错误似乎是由package.json中存在的两个插件引起的。我以为我已经使用ionic cordova plugin rm cordova-plugin-sqlite-2删除了它,但当我再次删除并添加平台并运行ionic cordova run android -l时,错误仍然出现在package.json中,显然cordova-plugin-sqlite-2仍然可用。

检查config.xml内部并将其从那里移除,移除并添加平台,错误消失。

最新更新