我遵循PouchDB安装和SQLite的所有步骤。我现在面临以下问题:离子2上的PouchDB + SQLite问题
1)this._db.info(),然后(console.log.bind(控制台)) - 显示适配器:的WebSQL,sqlite_plugin:假
Object
adapter:"websql"
auto_compaction:false
db_name:"bakbak"
doc_count:15
sqlite_plugin:false
update_seq:15
websql_encoding:"UTF-8"
我不是确定我做错了什么。
2)应用程序在Chrome上正常运行。在Firefox上它抛出一个错误:this.db.sync不是一个函数。我将其更改为PouchDB.sync,然后错误消失。为什么发生? 3)在Firefox和IE上完成上述更改后,我得到“EXCEPTION:错误:未捕获(承诺):错误:适配器丢失”。
是这个bug解决:https://groups.google.com/forum/#!searchin/pouchdb/sqlite/pouchdb/-ROWHfB3Ty0/6qEfRkf6MTkJ
我试图按照这里的建议是:Ionic PouchDb Sqlite plugin issue
但我没有任何pouchdb库在我的index.html进口。它不在js文件夹中。我可以在node-modules文件夹中找到它。
<body>
<ion-app></ion-app>
<!-- cordova.js required for cordova apps -->
<script src="cordova.js"></script>
<!-- Polyfill needed for platforms without Promise and Collection support -->
<script src="build/js/es6-shim.min.js"></script>
<!-- Zone.js and Reflect-metadata -->
<script src="build/js/angular2-polyfills.js"></script>
<!-- the bundle which is built from the app's source code -->
<script src="build/js/app.bundle.js"></script>
</body>
我作了如下改变,以使sqlite2插件:
<script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var db;
alert("window.cordova: " + window.cordova);
alert("window.SQLitePlugin: " + window.SQLitePlugin);
if (window.cordova && window.SQLitePlugin) { // because Cordova is platform specific and doesn't work when you run ionic serve
db = window.sqlitePlugin.openDatabase({ "name": "bakbak" }); //device - SQLite
alert("device db (SQLite) loaded");
} else {
db = window.openDatabase("APSNetMobileDb", "1.0", "bakbak", 100 * 1024 * 1024); // browser webSql, a fall-back for debugging
alert("browser db (WebSQL) loaded");
}
</script>
警报显示,科尔多瓦和SQLite是未定义
嗨Nolan - 我已经添加了SQLite插件2,它仍然显示相同的错误。我试图定义:window.sqlitePlugin但我做不到。我发现这段代码:var db = window.sqlitePlugin.openDatabase({name:“demo.db”});我得到这个错误:无法读取未定义的属性'openDatabase'。我一定做错了什么。请帮忙。 –
我设置了window.sqlitePlugin,但仍然出现相同的错误。在window.sqliteplugin的设置中,它显示该插件未加载。 –
对不起,我不知道为什么插件没有加载。您可能想阅读[本教程](http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-ionic-2/)或尝试[使用SQLite的示例Cordova应用程序贮藏】(https://github.com/nolanlawson/pouchdb-cordova-hello-world-with-sqlite-plugin)。 – nlawson