我正在开发离子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));
}
});
答案 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();
}
});
})