我正在使用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.dylib
,libsqlite3.dylib
和libiconv.dylib
为红色且因此丢失的框架。
这可能是问题吗?我已经抓了SO并尝试添加.tbd文件,但这似乎没有做任何事情......
可能有用的版本号:
答案 0 :(得分:0)
确保在PouchDB <script>
标记之前加载了SQLite插件<script>
标记。由于它们是使用离子动态添加的,因此我必须将pouchDB <script>
标记放在</body>
标记之前。
我在阅读@nlawson对similar question的答案后想出了这一点:
有a Cordova app using PouchDB and the SQLite Plugin的演示。您很可能只需要确保在PouchDB
<script>
之前加载SQLite插件<script>
。