PouchDB не создает базу данных на телефонах Samsung Android (Android v. 4.1.3, 4.2.2)

Я создаю базовое приложение для устройств Android. Я использую обычную базу данных Jade, JavaScript и PouchDB. Когда я развертываю приложение на симуляторе, устройства Android, такие как HTC, Tablet, работают нормально, но для устройств Samsung (Android v. 4.1.3, 4.2.2) оно не работает.

Мой нефритовый код

head

    script(src='../javascripts/pouchdb-nightly.min.js').
    script(type="text/javascript").
        var db = new PouchDB('pouchexample');

        function addBook(){
            var booktitle= window.document.bookform.titlefield.value;
            var authorfield= window.document.bookform.authorfield.value;
            var isbnfield= window.document.bookform.isbnfield.value;
            var book = {
                _id : isbnfield,
                title : booktitle,
                author : authorfield
            };
            db.put(book,function(err,res){
                if(!err){
                    clearField();
                    document.getElementById("message").innerHTML =
                        "new boook added";
                }
            });
        }

        function clearField() {
            window.document.bookform.titlefield.value="";
            window.document.bookform.authorfield.value="";
            window.document.bookform.isbnfield.value="";
        }

        function showBooks(){
            db.allDocs({include_docs:true, descending:true}, function(err, doc){
            showTableOfBooks(doc.rows);
            });
        }

        function showTableOfBooks(data){
            var div = document.getElementById("message");
            var str = "<table border='1' align='left'><tr><th>isbn</th><th>title</th><th>author</th></tr>";
            for(var i=0; i<data.length;i++){
                str +="<tr><td>"+data[i].doc._id+"</td><td>"+data[i].doc.title+"</td><td>"+data[i].doc.author+"</td></tr>"
            }
            str+="</table> ";
            div.innerHTML = str;
        }

body
    form(name='bookform')
        | book title
        input(type='text', name='titlefield')
        br
        | book author
        input(type='text', name='authorfield')
        br
        | book isbn
        input(type='text', name='isbnfield')
        br
        input(type='button', value='add book', onclick='addBook()')
        br
        input(type='button', value='clear fields', onclick='clearFields()')
        br
        input(type='button', value='show book', onclick='showBooks()')
        #message

Я скачал "pouchdb-nightly.min.js" с http://download.pouchdb.com/pouchdb-nightly.min.js

Подскажите, пожалуйста, правильное решение этой проблемы.

Спасибо...


person Amit Mourya    schedule 09.12.2013    source источник


Ответы (3)


Возникла проблема с неполной версией indexedDB на некоторых устройствах Android. исправлено в master, поэтому, если вы создадите копию pouchdb на основе ветки master, все будет в порядке.

person Calvin    schedule 18.02.2014
comment
С тех пор это было исправлено в официальном релизе. Если вы используете PouchDB 2.0.0+, вы больше не увидите эту проблему, поэтому, например. вам не нужен обходной путь websql, предложенный Джеймсом Д. - person nlawson; 18.04.2014

На Android сначала PouchDb выдавал ошибку: «не удается найти переменный буфер», когда я запускал его с помощью React Native. Модификация плагина pouchdb-binary-utils для использования нового буфера (safe-buffer устанавливается по умолчанию вместе с React-Native) решила проблему.

Получите обновленный плагин: https://github.com/emexrevolarter/react-native.

person emeka Ndefo    schedule 08.01.2019

У меня была похожая проблема, и я решил* ее, заставив pouchdb использовать websql.

var db = new PouchDB('websql://pouchexample');
person jdelibas    schedule 27.03.2014