我最近开始使用phonegap在android上进行开发。我在学习文件插件API时遇到了这个问题,我想知道是否可以为一个文件创建两个编写器(在两个不同的页面上)。当我在两个不同的页面上尝试下面的代码时(一个写道:"这个团队还没有被搜索",另一个写道"这个团队已经被搜索:)"由于某种原因,一次只有一个可以工作,如果我先运行第一个,它会创建文件并写入其中,但第二个不起作用。同样,如果我先运行第二个,它会创建文件并写入其中,但第一个不起作用。
<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>
(第二页上的代码基本相同,只是写入文本文件的消息除外)
您保留了exclusive: true
。因此,如果文件已经存在,请尝试将其设置为false,它会给您一个错误。看看这个
所以从这个中更改您的代码
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);
}