【问题标题】:PouchDB not detecting sqlite plugin using cordova (iOS)PouchDB 未使用 cordova (iOS) 检测 sqlite 插件
【发布时间】:2016-05-29 16:33:41
【问题描述】:

我正在使用 Ionic 构建一个移动应用程序。我已经安装了 pouchDB(最新版本 5.2.1)并让它保存数据。我还安装了 SQLlite cordova 插件 (https://github.com/litehelpers/Cordova-sqlite-storage)。根据他们的docs(参见标题为 Cordova/PhoneGap 的 SQLite 插件部分),如果存在 SQLlite 插件,PouchDB 应该自动使用它(也在各种博客中提到)。要测试 pouch 是否使用 SQLlite 插件,他们建议您运行 db.info().then(console.log.bind(console));

当我这样做时,我得到:

{"doc_count":2,"update_seq":104,"sqlite_plugin":false,"websql_encoding":"UTF-8","db_name":"test","auto_compaction":true,"adapter":"websql"}

这就是问题所在。我的应用似乎没有使用 SQLlite 来存储我所知道的数据。

我已构建应用程序并使用 xcode 将其部署到我的设备。使用 Safari 远程调试器,我检查了应用程序并验证了window.sqlitePlugin 在控制台中可用,这给了我:

{sqliteFeatures: {isSQLitePlugin: true}, echoTest: function, openDatabase: function, deleteDatabase: function} = $1.

为什么我的应用没有使用插件来存储数据?

我还能做更多检查吗?我似乎无法在 xcode 中看到任何特定于 DB 的文件,但是我注意到在 Xcode 中的构建目标 -> 框架下,libz.dyliblibsqlite3.dyliblibiconv.dylib 是红色的,因此丢失了。

这可能是问题吗?我已经抓取了 SO 并尝试添加 .tbd 文件,但这似乎没有任何作用......

可能有用的版本号:

  • 科尔多瓦 CLI:6.0.0
  • Gulp 版本:CLI 版本 3.9.0
  • Gulp local:本地版本 3.9.0
  • 离子版本:1.1.1
  • Ionic CLI 版本:1.7.14
  • Ionic 应用程序库版本:0.7.0
  • ios-deploy 版本:1.8.5
  • ios-sim 版本:5.0.6
  • 节点版本:v5.0.0
  • Xcode 版本:Xcode 7.2.1 构建 版本 7C1002

【问题讨论】:

    标签: xcode sqlite cordova ionic-framework pouchdb


    【解决方案1】:

    确保您的 SQLite 插件 <script> 标签在您的 PouchDB <script> 标签之前加载。由于它们是通过 ionic 动态添加的,因此我不得不将 pouchDB <script> 标签放在 </body> 标签之前。

    我在阅读@nlawsonsimilar question 的回答后发现了这一点:

    有一个a Cordova app using PouchDB and the SQLite Plugin 的演示。很可能您只需要确保在 PouchDB <script> 之前加载 SQLite 插件 <script>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 2016-05-04
      • 2016-08-03
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多