我在BlackBerry上加载了两个应用程序,一个是本机应用程序,另一个是基于PhoneGap / Cordova的应用程序. 这两个应用程序共享一个设置文件:file:///store/home/user/myfile.txt 要通过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每次获取内部存储器的根目录?
你用的是什么版本的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