Хранение газона с 2 коллекциями на PhoneGap Android
Я столкнулся с неприятной проблемой с Lawnchair (0.6.1). Я хочу иметь 2 глобально доступные коллекции / газоны, обе с адаптером webkit-sqlite. Вот как я их объявляю, сразу после загрузки шезлонга и адаптера:
var clientStore = Lawnchair({name: 'clients'}, function () {});
var companyStore = Lawnchair({name: 'companies'}, function () {});
// other global variables
...
В Safari и Chrome на моем рабочем столе все гладко, то же самое для моего iPad и других устройств iOS в эмуляторе, использующем Phonegap (3.0.0). Никаких проблем, обе базы данных отображаются в веб-инспекторе и в Weinre. Я могу использовать их в любых мероприятиях JQuery Mobile (версии 1.3.2 и 1.4.0 бета). Проверка объектов базы данных в Weinre вручную подтверждает, что они действительно используют адаптер webkit-sqlite.
Но если запустить приложение Phonegap на Android, только clientStore
доступно и доступно. Пытаясь получить доступ к companyStore
дает мне следующую ошибку:
companyStore.all(function (allEntries) {
console.log(allEntries);
...
> TypeError: Cannot call method 'all' of undefined
Единственная база данных, которая отображается в Weinre на устройстве Android, - это clients
база данных. Инициализация вручную companies
база данных из консоли инспектора Weinre после того, как все загружено, не оказывает никакого влияния на список баз данных на вкладке "Ресурсы" и не изменяет что-либо еще (за исключением визуально исчезающей вышеупомянутой ошибки).
Попытка получить доступ к неопределенному companyStore
программно, скажем, когда кто-то переключается на страницу, где должны быть перечислены все компании, "вылетает" пользовательский интерфейс на устройстве Android. После этого на консоли больше ничего не печатается. Как уже говорилось, все остальные платформы работают просто отлично.
Я просто что-то делаю глупо или я столкнулся с ошибкой / особенностью?
Огромное спасибо за помощь, этот доводит меня до стены:(.
Изменить: использование стандартного адаптера DOM работает для меня на всех платформах до сих пор. Я думаю, я буду придерживаться этого пока. В случае, если кто-то столкнулся с той же проблемой, вот как явно использовать адаптер DOM:
var clientStore = Lawnchair({name: 'clients', adapter: 'dom'}, function () {});
var companyStore = Lawnchair({name: 'companies', adapter: 'dom'}, function () {});