我最近开始使用phonegap来开发android。我在学习文件插件API时遇到了这个问题,我想知道是否可以为一个文件创建2个编写器(在两个不同的页面上)。当我在两个不同的页面上尝试下面的代码时(一个写道:“这个团队还没有被发现”,而另一个写道:“这个团队已被侦察:)”出于某种原因,只有一个人会一次工作,如果我跑第一个是第一个创建文件并写入文件,但第二个不起作用。同样,如果我先运行第二个,它会创建文件并写入,但第一个不起作用。
<script type="text/javascript" charset="utf-8">
alert("waiting...");
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
alert("Device Ready!");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onRequestFileSystemSuccess, null);
}
function onRequestFileSystemSuccess(fileSystem) {
alert("Got file system!");
fileSystem.root.getDirectory("FRC_SCOUT_DATA", { create: true }, onGotDir, null);
}
function onGotDir(dataDir) {
alert("Got Directoy!");
dataDir.getFile("data_1539.txt", { create: true, exclusive: true }, onFileCreated, null);
alert("Got File!");
}
function onFileCreated(dataFile) {
dataFile.createWriter(gotFileWriter, null);
}
function gotFileWriter(writer) {
writer.write("This team has been scouted :)");
}
</script>
(第二页上的代码基本相同,但写入文本文件的消息除外)
答案 0 :(得分:1)
您已保留exclusive: true
。因此,如果文件已存在,则会出现错误,请尝试将其设置为false。检查此out
所以改变你的代码
dataDir.getFile("data_1539.txt", { create: true, exclusive: true }, onFileCreated, null);
到
dataDir.getFile("data_1539.txt", { create: true, exclusive: false}, onFileCreated, fail);
function fail(error) {
console.log(error.code);
}