【发布时间】:2015-07-17 03:44:18
【问题描述】:
我已经让 PouchDB 在 Chrome、Firefox 和 Phone Gap 中工作,但我似乎无法让它在 Adobe Air SDK 中加载。我已经尝试过 Adobe Air SDK 的 15 和 18 版、PouchDB 的 3.5 和 3.6 版以及 adl 和 adt,它甚至似乎根本没有实例化数据库对象,当然也没有连接到 Cloudant。
我需要另一个库吗?还是它在 Adobe Air 中不起作用?
这是我正在使用的代码及其创建的警报。
谢谢!
最好的,
本
=================================
<!DOCTYPE html>
<html class="ui-mobile">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Not Working</title>
<script src="cordova.js"></script>
<script src="phoneincludes/jquery.js"></script>
<script src="phoneincludes/es6-promise.min.js"></script>
<script src="phoneincludes/es5-shim.min.js"></script>
<script src="phoneincludes/pouchdb.min.js"></script>
<script>
var db, remotedb;
var err = function(err) { alert(err) };
var changes = function(change) {
$('body').append('<div>' + JSON.stringify(change.doc,null,4) + '</div>');
};
function dispatch(fn, args) {
fn = (typeof fn == "function") ? fn : window[fn];
return fn.apply(this, args || []);
}
$(function() {
db = new PouchDB('todo');
alert(JSON.stringify(db,null,4));
remotedb = new PouchDB('https://user:pass@domain.cloudant.com/todo');
db.replicate.from(remotedb, {retry: true, filter: 'app/nowhammies'})
.on('complete', function() {
db.allDocs({include_docs: true}).then(function(docs) {
for (var row in docs.rows) {
dispatch(changes, [docs.rows[row]]);
}
});
}).on('error', err);
});
</script>
</head>
<body>
</body>
</html>
========================================
{
"__opts": {},
"prefix": "_pouch_",
"_events": {},
"taskqueue": {
"isReady": false,
"failed": {
"message": "Adapter is missing",
"code": 404,
"line": 9,
"expressionBeginOffset": 64839,
"expressionEndOffset": 64891,
"sourceId": 567532592,
"sourceURL": "app:/phoneincludes/pouchdb.min.js"
},
"queue": []
},
"_db_name": "todo"
}
========================================
感谢您的回答,@JesseMonroy650。
奇怪的是,似乎从未在 Adobe Air 中触发 deviceready 事件。例如,此代码输出“零”而不是“一”。 Adobe Air 只是一个与 PhoneGap 完全不同的系统吗?我真的很难过为什么这会在一个中起作用,而在另一个中不起作用......
========================================
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
function onLoad() {
$('#output').html('zero');
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
$('#output').html('one');
}
</script>
</head>
<body onload="onLoad()">
<div id="output">hello</div>
</body>
</html>
【问题讨论】:
标签: cordova air couchdb phonegap-build pouchdb