【问题标题】:what's the difference between cordova-plugin-sqlite-2 and cordova-sqlite-storage?cordova-plugin-sqlite-2 和 cordova-sqlite-storage 有什么区别?
【发布时间】:2022-01-21 23:50:06
【问题描述】:

在这个tutorial to use SQLite with PouchDB 中,使用的cordova 插件是cordova-plugin-sqlite-2。同时在another tutorial to use SQLite in Ionic,使用的cordova插件是cordova-sqlite-storage

这两个插件实际上有什么区别?

是否可以在 PouchDB 中使用 cordova-sqlite-storage 而不是 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-adapter-cordova-sqlite,它应该与cordova-sqlite-storage一起工作并声明;

使用原生 Cordova SQLite 作为其后备存储的 PouchDB 适配器。它 适用于以下任一 Cordova 插件:

  • Cordova-sqlite-storage
  • cordova-plugin-sqlite-2
  • cordova-plugin-websql

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

【问题讨论】:

    标签: sqlite ionic-framework cordova-plugins pouchdb ionic-native


    【解决方案1】:

    确保只有一个插件。

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

    config.xml里面检查并从那里删除它,删除并添加平台,错误消失了。

    【讨论】:

      猜你喜欢
      • 2017-12-18
      • 2018-03-17
      • 1970-01-01
      • 2014-11-23
      • 2021-05-24
      • 2023-03-17
      • 2021-03-15
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多