我正在使用Cordova / PhoneGap构建BlackBerry应用程序。我的最终目标是能够将预先填充的SQLite数据库与应用程序捆绑在一起。
我看过一些教程,建议在Assets文件夹中包含所需的文件,并在第一次app-load时加载它。
为了实现预填充数据库的结束,我将要访问黑莓设备上的本地文件系统。
使用Cordova文档中提供的示例我将以下内容放在一起:
onDeviceReady: function() {
app.receivedEvent('deviceready');
var fail = function(err){console.log(err)};
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
function(fs){
var reader = fs.root.createReader().readEntries(
function(entries){
console.log("FS:"+entries)
},
fail);
},fail
);
window.resolveLocalFileSystemURI("file:///store/home",
function(uri){
console.log(uri);
},
fail);
}
在所有情况下,模拟器上的文件列表都是空的(专门使用chrome ripple插件尝试)
missing exec:File.resolveLocalFileSystemURI ripple.js:39
["file:///store/home"] ripple.js:39
TypeError
ripple.js:39
TypeError: Cannot read property 'root' of undefined
at Object.module.exports.resolveLocalFileSystemURI (chrome- extension://geelfhphabnejjhdalkjhgipohgpdnoc/ripple.js:39:7398)
at module.exports.exec (chrome- extension://geelfhphabnejjhdalkjhgipohgpdnoc/ripple.js:39:19386)
at module.exports (http://telusbb.com/cordova-2.3.0.js:9602:5)
at app.onDeviceReady (http://telusbb.com/js/index.js:73:10)
at Channel.fire (http://telusbb.com/cordova-2.3.0.js:690:23)
at http://telusbb.com/cordova-2.3.0.js:219:47 ripple.js:39
File ripple.js:46
resolveLocalFileSystemURI
FS:
我无法从文档中找出,我希望存储一个文件,以便它出现在PhoneGap文件系统中。
目前我的资产文件夹位于<sampleapplciation>/www/assets
我是否应该存储文件,如果我想在应用程序中访问它们?
答案 0 :(得分:0)
我认为您最好的选择是在软件包之外构建预先打包的SQLite数据库,然后使用INSERT查询,在首次启动应用程序时构建数据库。
我在我的一个iOS Phonegap应用程序中执行此操作(使用非常简单的数据库授予)。它运作得很好。
答案 1 :(得分:0)
可能无关紧要,但我相信Ripple问题与您计算机上文件的位置有关。 顺便提一下,我建议您使用WebWorks SDK,它非常棒,有很多原生API访问,也许IO api可以帮助您满足您的需求,而且可以直接使用Ripple或命令行进行打包和安装(调试时)使用支持Web-inspector的设备,该设备也非常出色。)