我在BlackBerry上加载了两个应用程序,一个是本机应用程序,另一个是基于PhoneGap / Cordova的应用程序。
这两个应用程序共享一个设置文件:file:///store/home/user/myfile.txt
要通过Cordova访问此文件,请致电:
fileSystem.root.getFile("home/user/myfile.txt", null, gotFileEntry, fail);
但是,在某些设备上fileSystem.root
会返回SDCard目录,而不是存储文件的内部存储器,因此出现FileNotFound
错误。
我试过调用fileSystem.root.getParent(gotParent, fail);
,希望得到文件系统的根目录,然后从内部存储器中获取文件,如下所示:
parentDir.getFile("store/home/user/myfile.txt", null, gotFileEntry, fail);
但是这也不起作用,我仍然收到一个找不到错误的文件。
如何使用PhoneGap / Cordova?
每次获取内部存储器的根目录答案 0 :(得分:4)
您使用什么版本的Cordova?
自BlackBerry WebWorks(OS 5.0及更高版本)以来,支持Cordova File-API。
我是否正确地假设您只想阅读(并写入)该文件? 如果是这样,您可以尝试使用Cordova File-Reader和Cordova File-Writer。
<强>的FileReader 强>
function win(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("read success");
console.log(evt.target.result);
};
reader.readAsText(file);
};
var fail = function(evt) {
console.log(error.code);
};
entry.file(win, fail);
<强> FileWriter的强>
function win(writer) {
writer.onwrite = function(evt) {
console.log("write success");
};
writer.seek(writer.length);
writer.write("appended text");
};
var fail = function(evt) {
console.log(error.code);
};
entry.createWriter(win, fail);
否则尝试使用该代码段(代码属于旧项目但当时有效)
<script type="text/javascript" charset="utf-8" src="css-js/phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is ready
//
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
var path = "readme.txt";
fileSystem.root.getFile(path, {create: true, exclusive: false}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
writer.onwrite = function(evt) {
console.log("write success");
};
writer.write("some sample text");
我希望我能帮助你,最好的问候 F481