1

我正在为 android 设备创建一个基本应用程序。我正在使用普通的 Jade、JavaScript 和 PouchDB 数据库。当我在模拟器、HTC、平板电脑等安卓设备上部署应用程序时,它运行良好,但对于三星设备(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

我从http://download.pouchdb.com/pouchdb-nightly.min.js下载了“pouchdb-nightly.min.js”

请告诉我此问题的适当解决方案。

谢谢...

4

3 回答 3

1

某些 android 设备的 indexedDB 版本不完整存在问题,这已在 master 中修复,因此如果您基于 master 分支构建 pouchdb 的副本,您应该没问题。

于 2014-02-18T02:26:18.110 回答
1

在 Android 上,起初 PouchDb 在我使用 React Native 运行时出现错误:“找不到变量缓冲区”。修改 pouchdb-binary-utils 插件以使用新缓冲区(React-Native 默认安装的安全缓冲区),解决了问题。

获取更新的插件:https ://github.com/emexrevolarter/react-native

于 2019-01-08T15:56:42.453 回答
0

我有一个类似的问题,并通过强制 pouchdb 使用 websql 来解决它。

var db = new PouchDB('websql://pouchexample');
于 2014-03-27T09:30:12.050 回答