首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能使用cordova-sqlite-storage?

为什么我不能使用cordova-sqlite-storage?
EN

Stack Overflow用户
提问于 2015-12-12 19:08:37
回答 3查看 555关注 0票数 0

我正在写一个android应用程序,我正在使用phonegap和weinre进行调试。

一些信息:

代码语言:javascript
复制
$ phonegap -v
5.3.9
$ cordova plugin list
cordova-plugin-whitelist 1.2.0 "Whitelist"
cordova-sqlite-storage 0.7.14 "Cordova sqlite storage plugin"

该插件已安装,但当我使用phonegap运行它并在手机中打开它时,控制台中什么也没有显示。没有错误,什么都没有。window对象是在控制台中打印的,但不是所有其他对象。

我使用的是phonegap的默认配置,谁能告诉我为什么会发生这种情况?

这是我在js脚本中编写的代码。

代码语言:javascript
复制
document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady(event) {                              

    console.log(window);                                     
    //var db = window.sqlitePlugin.openDatabase({name: "my.db"});
    //var openDatabase = sqlitePlugin.openDatabase;          
    console.log(window.sqlitePlugin);                        
    console.log(window.sqlitePlugin.openDatabase);           

    var db = window.sqlitePlugin.openDatabase({name: "test.db"},
        function(db) {                                       
            console.log('db open succeeded');                
        },                                                   
        function(err) {                                      
            console.log('Open database ERROR: ' + JSON.stringify(err));
        }                                                    
    );                                                       

    db.executeSql("create table tmp 'column1' INT;", [], function (res) {
        console.log('got stringlength: ' + res.rows.item(0).stringlength);
    }, function(error) {                                     
        console.log('SELECT error: ' + error.message);       
    });                                                      

    db.executeSql("SELECT LENGTH('tenletters') AS stringlength", [], function (res) {
        console.log('got stringlength: ' + res.rows.item(0).stringlength);
    }, function(error) {                                     
        console.log('SELECT error: ' + error.message);       
    });                                                      
}                                                            
EN

回答 3

Stack Overflow用户

发布于 2015-12-13 05:11:59

我建议不要使用weinre,除非你真的必须这样做。某些设备的内置替代方案,此处列出:http://people.apache.org/~pmuellr/weinre/docs/latest/

票数 0
EN

Stack Overflow用户

发布于 2016-03-31 19:33:19

您好,请在您的onDeviceReady()中执行类似的操作。也许它无法与sqllite db一起工作。

代码语言:javascript
复制
onDeviceReady: function() {
        app.receivedEvent('deviceready');
          if(window.sqlitePlugin !== undefined) {
            console.log('opening sqlite DB ');
            db = window.sqlitePlugin.openDatabase("ECM_MOBILE");
        } else {
            console.log('opening Web SQL DB ');
            db = window.openDatabase("ECM_MOBILE", "1.0", "Cordova Demo", 200000);
        }   

    }

如果sqlite没有正确安装,那么您需要修复sqlite db的安装。

票数 0
EN

Stack Overflow用户

发布于 2016-05-31 21:18:45

在较新版本的SQLite插件中,必须在打开数据库时设置位置:

代码语言:javascript
复制
var db = window.sqlitePlugin.openDatabase({name: "my.db", location: "default"}); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34239139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档