Ionic Cordova SQLite在浏览器上运行良好但在Android设备中不能持久

时间:2016-10-19 07:53:34

标签: android sqlite cordova ionic-framework

我正在开发离子cordova杂交应用。当我使用浏览器测试它时,应用程序运行良好。但我在我的真实设备中测试它并不是非常持久。这意味着SQLite有时运行良好,有时效果不佳。以下是我的代码:

app.js

.run(function($ionicPlatform, $cordovaSQLite) {
  $ionicPlatform.ready(function() {
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);

    }
    if (window.StatusBar) {
      StatusBar.styleDefault();
    }

    db = window.openDatabase("chatChannel.db", "1", "Demo SQLite Test", "2000");
    $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS chat_channel(id interger primary key, chat_room text, last_text text, username text, chat_channel text unique)");
    $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS chat_content(id integer primary key, content text, channel text, chat_flag integer, username text, date timestamp)");
  });

controller.js

   var query = "SELECT * FROM chat_content WHERE channel=? ORDER BY date";
    var promise =  $cordovaSQLite.execute(db, query, [subscribeChannel]).then(function(result){
    for(i=0; i<result.rows.length; i++){
        $scope.messages.push(result.rows.item(i));
        console.log(result.rows.item(i));
        }
    });  

1 个答案:

答案 0 :(得分:1)

请尝试以下操作:

 1.最后将 ng-cordova-min.js ng-cordova.js cordova.js 文件放在底部你的 index.html 文件中的你的文件

 2.在你的app.js文件中,数据库初始化应该是第一行,即

    var db = null;

应该是顶部的第一行。仍然在你的app.js文件中,

    db = window.openDatabase("chatChannel.db", "1", "Demo SQLite Test", "2000");

应该是平台就绪功能的第一行。 你的代码在 app.js 文件中应该是这样的;

.run(function($ionicPlatform, $cordovaSQLite) {
        $ionicPlatform.ready(function() {
        db = window.openDatabase("chatChannel.db", "1", "Demo SQLite Test", "2000");

        $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS chat_channel(id interger primary key, chat_room text, last_text text, username text, chat_channel text unique)");
        $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS chat_content(id integer primary key, content text, channel text, chat_flag integer, username text, date timestamp)");

        if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
            cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            cordova.plugins.Keyboard.disableScroll(true);
        }
        if (window.StatusBar) {
            StatusBar.styleDefault();
        }
    });
})