在本教程中,要将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
内部并将其从那里移除,移除并添加平台,错误消失。