[英]Bundle and Access a file within the BlackBerry PhoneGap / Cordova file system
我正在使用Cordova / PhoneGap构建BlackBerry应用程序。 我的最终目标是能够将预填充的SQLite数据库与应用程序捆绑在一起。
我看过一些教程,建议将所需文件包含在Assets文件夹中,并在首次应用程序加载时加载它。
为了结束预先填充的数据库,我将要访问blackberry设备上的本地文件系统。
使用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波纹插件)
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
中,如果我想在应用程序中访问文件,是否还有其他路径可以存储文件?
我认为最好的选择是在程序包外部构建预打包的SQLite数据库,然后使用INSERT查询在应用程序首次启动时构建数据库。
我正在我的一个iOS Phonegap应用程序中执行此操作(通过一个非常简单的DB进行了授予)。 它运作完美。
可能无关紧要,但我认为Ripple问题与文件在计算机上的位置有关。 顺便说一句,我建议您使用WebWorks SDK,它对许多本地API的访问都很棒,也许IO api可以为您提供所需的帮助,而且可以直接使用Ripple或Command Line打包和安装(在对于启用了Web检查器的设备,该设备也非常出色)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.