Sqlite在混合应用程序中不工作
Sqlite not working in hybrid app
我正在使用Monaca IDE开发一个混合应用程序,问题是我使用的数据库是用Sqlite创建的,它在预览中效果很好,我甚至有另一个项目使用了相同的DB方案,它也很好,但当我尝试制作.apk时,应用程序可以工作,但数据库从未创建,我不知道我是否应该做一些我不知道的其他事情,或者如果你们知道这里可能发生了什么!
注意:如果我在firefox 中打开Monaca预览,它也不起作用
这是我的数据库代码:
$(document).ready(function(){
onDeviceReady();
});
function onDeviceReady() {
db = window.openDatabase('antel', '1.0', 'primera', 2 * 1024 * 1024);
db.transaction(crearBase);
};
function crearBase(tx) {
tx.executeSql('Create table if not exists PARADA (nombre TEXT PRIMARY KEY)', [], function (tx) {
tx.executeSql('Create table if not exists REGISTRO (id INTEGER PRIMARY KEY autoincrement, nomParada TEXT REFERENCES PARADA (nombre), tipo TEXT ,km TEXT,fecha TEXT,hora TEXT)', [], function (tx) {
tx.executeSql('Create table if not exists EMAIL (id INTEGER PRIMARY KEY autoincrement,nombre TEXT)', [], function (tx) {
tx.executeSql('Select nombre FROM PARADA',[],meFijoSiEsVacia);});
});
});
}
我不确定是否需要创建这样的回调地狱。您应该考虑到,您所依赖的是每一条语句都通过得很好,并且没有错误处理。我不喜欢Monaca,所以不确定他们使用的是哪个cordova SQLite插件,但我看了他们关于SQLite 的文档
他们正在执行打开sql事务的所有语句:
function onDeviceReady() {
var db = window.openDatabase('antel', '1.0', 'primera', 2 * 1024 * 1024);
db.transaction(crearBase, errorCB, successCB);
};
function crearBase(tx) {
tx.executeSql('Create table if not exists PARADA (nombre TEXT PRIMARY KEY)');
tx.executeSql('Create table if not exists REGISTRO (id INTEGER PRIMARY KEY autoincrement, nomParada TEXT REFERENCES PARADA (nombre), tipo TEXT ,km TEXT,fecha TEXT,hora TEXT)');
tx.executeSql('Create table if not exists EMAIL (id INTEGER PRIMARY KEY autoincrement,nombre TEXT)');
tx.executeSql('Select nombre FROM PARADA');
}
function errorCB(err) {
console.log("Error occured while executing SQL: "+err.code);
}
function successCB() {
console.log("all fine");
}
嵌套所有这些成功函数可能是有原因的,但也应该处理错误回调。仅仅说"预览工作,设备没有"是不够的。浏览器环境当然不同于Cordova插件。
虽然Kerosene关于如何编写这些语句是正确的,但我遇到的问题是Jquery导入,因为我有:
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
这样(我不知道为什么)它可以在预览中工作,但不能在设备中工作
当我把它改成:
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
工作得很好!,
谢谢Kerosene,你是唯一一个试图帮助你的人!
相关文章:
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- firefox插件:退出不工作的应用程序观察器
- 为什么Turbolinks不能正常工作?Rails应用程序
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- angular js应用程序不工作
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- 只需添加一个'允许跨来源请求'到我的节点应用程序工作
- 我应该将哪些数据传递给 Spotify 应用程序才能使分页工作
- 如何让应用程序帮助程序方法在发送的请求为 JS 格式时工作
- 最基本的 Angular 应用程序无法正常工作
- WebSocket 应用程序在部署在 Tomcat8 服务器上时无法正常工作
- 离子应用程序在浏览器上运行,但在我的安卓设备中无法正常工作
- 谷歌应用程序脚本-正在尝试使用getUrl.TypeError:在对象工作表中找不到函数getUrl
- cyrillic单词的Regexp不'无法在应用程序中工作
- 提示不在谷歌应用程序脚本中工作
- 为什么我的UI应用程序嵌套在引导模式中时无法工作
- Javascript和jQuery在Grails应用程序中停止工作
- 我的javascript问答应用程序;工作不正常
- 如何在ExtJS中构建无需鼠标即可工作的应用程序
- Backbone.js应用程序使用CommonJS结构与node.js和客户端协同工作