【发布时间】: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.dylib、libsqlite3.dylib 和 libiconv.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