使用Phonegap访问文件
Access files using using Phonegap
我正在尝试使用 Phonegap[cordova 1.7.0] 在 IOS 上处理文件。我阅读了如何访问文件并在电话间隙的API文档中阅读它们。但我不知道,当文件被读取时,它会写在哪里?以及如何输出文本,图像或iPhone屏幕上包含的文本
?这是我使用的代码:
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.file(gotFile, fail);
}
function gotFile(file){
readDataUrl(file);
readAsText(file);
}
function readDataUrl(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("Read as data URL");
console.log(evt.target.result);
};
reader.readAsDataURL(file);
}
function readAsText(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("Read as text");
console.log(evt.target.result);
};
reader.readAsText(file);
}
function fail(evt) {
console.log(evt.target.error.code);
}
从 Cordova 3.5(至少)开始,FileReader
对象只接受File
对象,不接受FileEntry
对象(我不确定以前的版本)。
以下示例将内容输出到控制台的本地文件readme.txt
。这里与Sana的例子不同的是调用FileEntry.file(...)
。这将提供调用FileReader.readAs
函数所需的File
对象。
function readFile() {
window.requestFileSystem(window.LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile('readme.txt',
{create: false, exclusive: false}, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new window.FileReader();
reader.onloadend = function(evt) {console.log(evt.target.result);};
reader.onerror = function(evt) {console.log(evt.target.result);};
reader.readAsText(file);
}, function(e){console.log(e);});
}, function(e){console.log(e);});
}, function(e) {console.log(e);});
}
如果有人需要它,这就是对我有用的方法:
function ReadFile() {
var onSuccess = function (fileEntry) {
var reader = new FileReader();
reader.onloadend = function (evt) {
console.log("read success");
console.log(evt.target.result);
document.getElementById('file_status').innerHTML = evt.target.result;
};
reader.onerror = function (evt) {
console.log("read error");
console.log(evt.target.result);
document.getElementById('file_status').innerHTML = "read error: " + evt.target.error;
};
reader.readAsText(fileEntry); // Use reader.readAsURL to read it as a link not text.
};
console.log("Start getting entry");
getEntry(true, onSuccess, { create: false });
};
如果您使用的是phonegap(Cordova)1.7.0,则以下页面将在iOS中工作,请替换索引中的以下模板.html
<!DOCTYPE html>
<html>
<head>
<title>FileWriter Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
writer.onwriteend = function(evt) {
console.log("contents of file now 'some sample text'");
writer.truncate(11);
writer.onwriteend = function(evt) {
console.log("contents of file now 'some sample'");
writer.seek(4);
writer.write(" different text");
writer.onwriteend = function(evt){
console.log("contents of file now 'some different text'");
}
};
};
writer.write("some sample text");
}
function fail(error) {
console.log(error.code);
}
</script>
</head>
<body>
<h1>Example</h1>
<p>Write File</p>
</body>
</html>
相关文章:
- 从另一个文件访问函数的返回值
- 从HTML中的另一个文件访问javascript方法
- Chrome中的本地文件访问
- 从require()'d文件访问函数
- 从另一个 javascript 文件访问 main() 函数
- 从不同的javascript文件访问HTML表单提交的值
- http(localhost或remote)提供的文件是否可以从通过file://protocol打开的本地文件访问?反
- 使用PrimeFaces从Javascript文件访问资源
- 从php文件访问javascript数组
- 如何从单独的javascript文件访问模型属性?(MVC)
- 通过文件访问页面时Cookie不起作用://
- 从批处理文件访问JavaScript方法
- 从不同目录中的另一个文件访问一个文件
- 从其他文件访问 Ext 甘特 JS 变量
- 解决 Html5 本地文件访问问题
- 从外部 Javascript 文件访问数据
- 从 javascript 文件访问 Webform
- 从外部 JavaScript 文件访问表单元素
- 如何从 jade 文件中的 javascript 文件访问变量的值
- 如何从我的外部javascript文件访问php变量