PouchDB没有使用cordova检测sqlite插件(iOS)

时间:2016-02-17 19:17:46

标签: xcode sqlite cordova ionic-framework pouchdb

我正在使用Ionic构建移动应用。我已经安装了pouchDB(最新版本5.2.1)并保存了数据。我还安装了SQLlite cordova插件(https://github.com/litehelpers/Cordova-sqlite-storage)。根据他们的docs(参见Cordova / PhoneGap的SQLite插件一节),如果存在SQLlite插件,PouchDB应该自动使用它(在各种博客中也会提到)。要测试小包是使用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中看到任何特定于数据库的文件,但我注意到在Xcode中的构建目标 - > libz.dyliblibsqlite3.dyliblibiconv.dylib为红色且因此丢失的框架。

Xcode build target frameworks

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

可能有用的版本号:

  • Cordova CLI:6.0.0
  • Gulp版本:CLI版本3.9.0
  • Gulp local:本地版本3.9.0
  • 离子版:1.1.1
  • Ionic CLI版本:1.7.14
  • Ionic App Lib版本:0.7.0
  • ios-deploy版本:1.8.5
  • ios-sim版本:5.0.6
  • 节点版本:v5.0.0
  • Xcode版本:Xcode 7.2.1 Build 版本7C1002

1 个答案:

答案 0 :(得分:0)

确保在PouchDB <script>标记之前加载了SQLite插件<script>标记。由于它们是使用离子动态添加的,因此我必须将pouchDB <script>标记放在</body>标记之前。

我在阅读@nlawsonsimilar question的答案后想出了这一点:

  

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