我想构建一个带有cordova
/ phonegap
的跨平台移动应用程序,它需要一个数据库(仅限客户端)。我的目标平台主要是Android
和iOS
。我已选择couchbase-lite
作为我的存储空间。
但我在couchbase-lite
中找不到phonegap
的任何好文档。只有我在rest api和application todo-lite中找到了一些github和Play Store。
我无法理解,如果我没有任何服务器端实现,我怎么能得到 url 我可以发送 POST / GET / PUT / DELETE 请求。
任何人都可以建议我使用{{couchbase-lite
和Android
本地iOS
数据库中安装,连接和运行CRUD操作的方法1}} / cordova
。
对于那些建议我选择另一个数据库的人,我只是分享我的发现...
来自cordova 5.0 storage documentation有几个选择
phonegap
。其中包含对Android和iOS平台的插件支持。答案 0 :(得分:5)
我一直在寻找这个,我想我终于找到了一些东西。事实证明,您需要使用同轴库与Couchbase Lite db进行通信。 Couchbase Lite插件只公开一个方法getURL,它返回Couchbase Lite的LOCAL内部URL。然后你必须使用coax来创建一个db对象并对它运行查询。
基本上看起来对Couchbaselite的访问都是通过使用内部形成的URL的REST查询。但这样做很痛苦,因此你需要使用同轴电缆。有了同轴电缆,似乎REST操作被公开为objects..put,del等上的函数。这里列出了对API的完整引用是很好的细节:
Here is the full spec of the REST operations for Couchbase Lite on mobile - your CRUD ops
Here is the Coax with simple instructions on how the rest queries work in the context of CouchDB
我在这里发现了一篇非常好的文章 - 它讨论了设置和所有CRUD操作。
Couchase Lite in Cordova via Coax
希望这能帮到你......
答案 1 :(得分:3)
另一个建议可能是PouchDB和CouchDB。
您可以将CouchDB直接同步到PouchDB,并且它足够聪明,可以使用设备上可用的任何存储,即Localstorage,IDB,WebSQL。
如果您不想完全复制,那么您可以构建一些中间件来控制从CouchDB复制到PouchDB的内容(您可以指定从哪个文件复制数据库)
api非常简单,文档全部在网站上。
答案 2 :(得分:2)
您可以使用Phonegap Cordova SQLite Plugin支持iOS以及Android
编码中没有语法差异只有差异
db = window.openDatabase("DBNAME", "1.0", "Description", 200000); // WebSQL
db = window.sqlitePlugin.openDatabase("DBNAME", "1.0", "Description", 200000); // SQLite Plugin
db.transaction(function(tx){
tx.executeSql("CREATE TABLE demo(id INTEGER,name TEXT)");
});
新版Android / iOS设备的存储空间不受限制
答案 3 :(得分:2)
您要查找的代码位于函数setupConfig中的todo-lite phonegap应用程序中。你需要来自todolite-phonegap app的modules.js,zepto.min.js和zepto.touch.js文件。
//check if couchbase lite plugin is installed
if (!window.cblite) { return alert( 'Couchbase Lite not installed' ) }
//get your local url from the plugin
cblite.getURL( function(err, url) {
console.log( "getURL: " + JSON.stringify( [ err, url ] ) )
if (err) { return alert( JSON.stringfiy( err ) ) }
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( 'GET', url, false )
xmlHttp.send( null )
window.server = coax( url );
var db = coax( [ url, appDbName ] );
setupDb( db, function(err, info) {
if (err) { return alert( JSON.stringify( err ) ) }
// now your db connection is setup you do CRUD operations by
//GET
db.get( "myDocumentID", function (error, doc) {
if( error ) {
if( error.status == 404 ) {
//INSERT
var myDocument = { "key" : "value" };
db.put( "myDocumentID", myDocument, function( error, ok ) {
if (error) { return alert( JSON.stringify( error ) }
//success
} );
} else { return alert(JSON.stringify( error) ) }
} else {
//UPDATE
doc.my_key = "value";
//DELETE
doc._deleted = true;
db.put("myDocumentID", doc, function(error, ok) {
if (error) { return alert( JSON.stringify( error ) }
//success
} );
}
} );
} );
} );
function setupDb(db, cb) {
db.get( function(err, res, body) {
db.put( function(err, res, body) {
db.get( cb )
} )
} )
}
答案 4 :(得分:1)
我意识到这有点晚了但你可以在Couchbase网站上找到一个很好的视频(你必须交出你的电子邮件等,但它相当轻松)。 @LorinBeer在大约15分钟内完成在手机差距应用程序中设置本地数据存储(从大约15:00开始)。
Using PhoneGap and Couchbase Lite to Create Data-Intensive Applications
还有一个演示回购,ANOTER,
答案 5 :(得分:0)
在您提问的application todo-lite链接中,它会向您展示如何使用couch-DB数据库
他们提供了index.js文件的链接,其中包含couch-db lite的实现(操作方法)细节。
我想你可能错过了链接。您可以查看 index.js 文件以获取实现详细信息。