2015-09-04 2 views
0

Новое в разработке гибридных приложений, использую Cordova v5, Ionic и PouchDB для своего приложения. Кажется, что все отлично работает с командой Ionic, но любая операция на PouchDB, похоже, не работает на реальных устройствах под управлением Android Lollipop.PouchDB on Hybrid Cordova Приложение не работает

Я явно указываю «WebSQL» при создании объекта pouchDB. Я не знаю, не хватает ли каких-либо шагов.

Вот код

var houselst = JSON.parse('<some json string>'); 

new PouchDB('SH_HouseVisitDB', { adapter: 'websql' }).destroy().then(function() { 
      return new PouchDB('SH_HouseVisitDB'); 
     }).then(function (db) { 

     var doc = { 
        "_id": "houselist", 
        "items": houselst 
       }; 

       //insert the doc to pouchDB 
       db.put(doc); 
       db.get('houselist').then(function (doc) { 
        vm.houselist = _.sortBy(doc.items, "name"); 
        db.close(); 
       }); 
} 

Любая помощь будет принята с благодарностью.

+0

вы читали абзац на SQLite плагин в http://pouchdb.com/adapters.html? Что такое вывод 'db.info(). Then (function (info) {alert (info);});'? И вам действительно нужно использовать плагин (см. Документы)? – thriqon

+0

Привет, спасибо, спасибо за помощь. Когда я запускаю ионную команды служат Подвожу объект информации следующим образом информация: Object auto_compaction: ложные db_name: "SH_HouseVisitDB" doc_count: 0 sqlite_plugin: ложные update_seq: 0 websql_encoding: "UTF-8" __proto__: Object – Shan

ответ

0

Как правило, не рекомендуется использовать new PouchDB(...) в качестве обещания для себя (например, new PouchDB(...).then(...)). Это более старый стиль, от которого мы отодвигаемся, потому что он вызывает проблемы в некоторых средах Promise из-за круговых зависимостей. Попробуйте сделать var db = new PouchDB(...); и посмотрим, поможет ли это!

+0

Привет, Нолан, я изменил код, как вы упомянули. Похоже, что не хватает какого-то важного шага. db.info показывает sqlite_plugin: false :-(. – Shan

+0

Вы также можете попробовать адаптер IndexedDB, просто оставив «адаптер:» websql''. Также интересно, есть ли какие-либо ошибки? Вы можете увидеть ошибки, добавив '.catch (console.log.bind (console)) '. Также вам не нужен sqlite_plugin на Lollipop для работы PouchDB, на самом деле он работает более последовательно без него. – nlawson

Смежные вопросы