var fileSystem = null;
//等待加载PhonrGap
document.addEventListener("deviceready", onDeviceReady, true);
function onDeviceReady() {
//request the persistent file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFSSuccess, onError);
}
//加载phoneGap成功
function onFSSuccess(fs) {//alert("aaa="+ fs);
fileSystem = fs;
}
function onError(e) {
alert(e);
//getById("#content").innerHTML = "<h2>Error</h2>"+e.toString();
}
//areater缓存存储值 防止同时调写文件多次,只有最后的写成功(javascript异步)
var areater = new Array();
var count1 = 0;
//创建文件写文件
function save2File(fileName, key, value, keyValueSplit, recodeSplit) {
//alert(6)
write2File(fileName, key, value, keyValueSplit, recodeSplit, "setSaveSuccess");
}
//创建文件写文件
function write2File(fileName, key, value, keyValueSplit, recodeSplit, responseFun) {//responseFun函数名显示结果
//alert(5)
var saveSuccess = true;
var path_1 = fileName;
var keyValueSplit_1 = keyValueSplit;
var recodeSplit_1 = recodeSplit;
var file_ = "";
var parameter = key + keyValueSplit + value;
areater[count1++] = parameter;
doReadFile();
//文件存在读取文件如果不存在创建文件
function doReadFile() {
//alert(9)
fileSystem.root.getFile(path_1, {
create: true
}, function(f) {
reader = new FileReader();
reader.onloadend = function(e) {
console.log("go to end");
//file_读取到的内容
file_ = e.target.result;
alert(e.target.result)
//logit("<pre>" + e.target.result + "</pre><p/>");
};
reader.readAsText(f);
}, onError);
function onError(e) {}
doAppendFile();
}
//文件不存在创建文件并写文件
function doAppendFile() {
alert("doAppendFile");
fileSystem.root.getFile(path_1, {
create: true
}, function(f) {
f.createWriter(function(writerOb) {
writerOb.onwrite = function() {
//logit("Done writing to file.<p/>");
};
var total = new Array();
total = file_.split(recodeSplit_1);
var value_a = "";
alert(areater.length);
//文件不存在第一次写
if (file_ == undefined || file_ == null || file_ == "") {
value_a = areater.join(recodeSplit_1);
} else {//文件存在
var strs = new Array();
strs = file_.split(recodeSplit_1);
var map = getMap();
for (i = 0; i < strs.length; i++) {
var str = strs[i];
//alert(strs[i])
var key = str.substr(0, str.indexOf(keyValueSplit_1)) + "";
var value = str.substr(str.indexOf(keyValueSplit_1) + 1) + "";
map.put(key, value);
}
for (i = 0; i < areater.length; i++) {
var str = areater[i];
var key = str.substr(0, str.indexOf(keyValueSplit_1)) + "";
var value = str.substr(str.indexOf(keyValueSplit_1) + 1) + "";
map.put(key, value);
}
var str = map.keyset() + "";
var str2 = new Array();
str2 = str.split(",");
var str3 = new Array();
for (i = 0; i < str2.length; i++) {
str3[i] = str2[i] + keyValueSplit_1 + map.get(str2[i]); // 合并key和value
}
value_a = str3.join(recodeSplit_1);
//自定义Map
function getMap() {
var map_ = new Object();
map_.put = function(key, value) {
map_[key + '_'] = value;
};
map_.get = function(key) {
return map_[key + '_'];
};
map_.remove = function(key) {
delete map_[key + '_'];
};
map_.keyset = function() {
var ret = "";
for (var p in map_) {
if (typeof p == 'string' && p.substring(p.length - 1) == "_") {
ret += keyValueSplit_1;
ret += p.substring(0, p.length - 1);
}
}
if (ret == "") {
return ret.split(keyValueSplit_1);
} else {
return ret.substring(1).split(keyValueSplit_1);
}
};
return map_;
}
}
writerOb.write(value_a);
//写成功返回确认
var runFun = responseFun + "(" + saveSuccess + ")";
//字符串转对象
eval_r("(" + runFun + ")");
});
}, onError);
function onError(e) { alert("qqq写文件内容错误:"+e); }
}
// return write1;
}
//读文件中所有内容
function readFromFileAll(filename, keyValueSplit, recodeSplit, responseFun) {
//alert(456)
//var findValue;
var fileSystem1 = null;
var path_1 = filename;
var keyValueSplit_1 = keyValueSplit;
var recodeSplit_1 = recodeSplit;
var file_ = "";
var flag = 1;
document.addEventListener("deviceready", onDeviceReady1, true);
//alert(1)
function onDeviceReady1() {
//alert(2)
//request the persistent file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFSSuccess1, onError);
}
function onFSSuccess1(fs) {//alert("aaa="+ fs);
//alert(3)
fileSystem1 = fs;
doReadFile();
}
function onError(e) {
alert(e);
//getById("#content").innerHTML = "<h2>Error</h2>"+e.toString();
}
function doReadFile() {
//alert(5)
fileSystem1.root.getFile(path_1, {
create: true
}, function(f) {
// alert(6)
reader = new FileReader();
reader.onloadend = function(e) {
console.log("go to end");
file_ = e.target.result;
//alert("9998="+e.target.result)
var total = new Array();
total = file_.split(recodeSplit_1);
//var json1 = new Array();
var json1 = {};
// var i = 0;
for (j = 0; j < total.length; j++) {
//alert(1)
var str = total[j];
var s1 = str.substring(0, str.lastIndexOf(keyValueSplit_1));
var s2 = str.substring(str.lastIndexOf(keyValueSplit_1) + 1);
json1[s1] = s2;
}
//alert(json1)
var runFun = responseFun + "(" + WMW.obj2str(json1) + ")";
//alert(runFun)
eval_r("(" + runFun + ")");
};
reader.readAsText(f);
}, onError);
function onError(e) { alert("读取文件内容错误:"+e); }
}
}
//更具KEY查找文件中值
function readFromFile(filename, key, keyValueSplit, recodeSplit,responseFun) {
var path_1 = filename;
var keyValueSplit_1 = keyValueSplit;
var recodeSplit_1 = recodeSplit;
var file_ = "";
doReadFile();
function doReadFile() {
//alert(doReadFile)
fileSystem.root.getFile(path_1, {
create: true
}, function(f) {
reader = new FileReader();
reader.onloadend = function(e) {
file_ = e.target.result;
//alert("9998=" + e.target.result);
var total = new Array();
total = file_.split(recodeSplit_1);
for (j = 0; j < total.length; j++) {
var str = total[j];
//alert(9)
if (str.substring(0, str.lastIndexOf(keyValueSplit_1)) == key) {
//alert(7)
var value = str.substring(str.lastIndexOf(keyValueSplit_1) + 1);
//alert("value=" + value);
// 设置从文件中读取值
var runFun = responseFun + "(" + value + ")";
// alert(runFun)
eval_r("(" + runFun + ")");
break;
}
}
};
reader.readAsText(f);
}, onError);
function onError(e) {}
}
}
// 设置从文件中读取单个值
function setReadFileValue(val) {
var value = val;
//alert(value);
}
// 设置从文件中读取所有值
function setReadFileAll(val) {
alert(7)
alert("value="+val);
}
// 设置从文件写成功
function setSaveSuccess(val) {
//alert(val)
}
//测试
function test() {
alert("11");
onWrite3();
//readFromFile("dataFile.txt", "nnn", ",", "\r\n");
//readFromFileAll("aaa/dataFile.txt",",","\r\n","setReadFileAll");
//save2File("aa/dataFile.txt", "9999", "99999999", ",", "\r\n");
// save2File("dataFile.txt", "888888", "99999999", ",", "\r\n");
// write2File("dataFile.txt", "wwww", "oooooo", ",", "\r\n", "setReadFileAll");
//alert("aa="+aa)
}
//PhoneGap创建文件代码太过繁琐 就省去了创建文件的过程,传参时只能写文件名,不能加路径
//要想把文件保存在文件夹,就先掉一下onWrite3()创建文件夹的作用。
//说这么多意思就是要把文件写在某个文件下,前提是要有这个文件,传参时才可加路径
//刚开始学,有不足之处还望指教
//文中WMW.obj2str(json1)函数没有提供,对象转换的作用,可用字符串代替直接输出
function onWrite3() {
// alert("onWrite");
document.addEventListener("deviceready", onDeviceReady3, false);
}
function onDeviceReady3() {
//alert("onWrite3()");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS3, fail);
}
//获取newFile目录,如果不存在则创建该目录
function gotFS3(fileSystem) {
var filePath="myfile";
//var filePath = path_1.substring(0, path_1.lastIndexOf("/"));
newFile = fileSystem.root.getDirectory(filePath, {create:true, exclusive:false}, writerFile3, fail);
}
function writerFile3(){}
function fail(){}
//等待加载PhonrGap
document.addEventListener("deviceready", onDeviceReady, true);
function onDeviceReady() {
//request the persistent file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFSSuccess, onError);
}
//加载phoneGap成功
function onFSSuccess(fs) {//alert("aaa="+ fs);
fileSystem = fs;
}
function onError(e) {
alert(e);
//getById("#content").innerHTML = "<h2>Error</h2>"+e.toString();
}
//areater缓存存储值 防止同时调写文件多次,只有最后的写成功(javascript异步)
var areater = new Array();
var count1 = 0;
//创建文件写文件
function save2File(fileName, key, value, keyValueSplit, recodeSplit) {
//alert(6)
write2File(fileName, key, value, keyValueSplit, recodeSplit, "setSaveSuccess");
}
//创建文件写文件
function write2File(fileName, key, value, keyValueSplit, recodeSplit, responseFun) {//responseFun函数名显示结果
//alert(5)
var saveSuccess = true;
var path_1 = fileName;
var keyValueSplit_1 = keyValueSplit;
var recodeSplit_1 = recodeSplit;
var file_ = "";
var parameter = key + keyValueSplit + value;
areater[count1++] = parameter;
doReadFile();
//文件存在读取文件如果不存在创建文件
function doReadFile() {
//alert(9)
fileSystem.root.getFile(path_1, {
create: true
}, function(f) {
reader = new FileReader();
reader.onloadend = function(e) {
console.log("go to end");
//file_读取到的内容
file_ = e.target.result;
alert(e.target.result)
//logit("<pre>" + e.target.result + "</pre><p/>");
};
reader.readAsText(f);
}, onError);
function onError(e) {}
doAppendFile();
}
//文件不存在创建文件并写文件
function doAppendFile() {
alert("doAppendFile");
fileSystem.root.getFile(path_1, {
create: true
}, function(f) {
f.createWriter(function(writerOb) {
writerOb.onwrite = function() {
//logit("Done writing to file.<p/>");
};
var total = new Array();
total = file_.split(recodeSplit_1);
var value_a = "";
alert(areater.length);
//文件不存在第一次写
if (file_ == undefined || file_ == null || file_ == "") {
value_a = areater.join(recodeSplit_1);
} else {//文件存在
var strs = new Array();
strs = file_.split(recodeSplit_1);
var map = getMap();
for (i = 0; i < strs.length; i++) {
var str = strs[i];
//alert(strs[i])
var key = str.substr(0, str.indexOf(keyValueSplit_1)) + "";
var value = str.substr(str.indexOf(keyValueSplit_1) + 1) + "";
map.put(key, value);
}
for (i = 0; i < areater.length; i++) {
var str = areater[i];
var key = str.substr(0, str.indexOf(keyValueSplit_1)) + "";
var value = str.substr(str.indexOf(keyValueSplit_1) + 1) + "";
map.put(key, value);
}
var str = map.keyset() + "";
var str2 = new Array();
str2 = str.split(",");
var str3 = new Array();
for (i = 0; i < str2.length; i++) {
str3[i] = str2[i] + keyValueSplit_1 + map.get(str2[i]); // 合并key和value
}
value_a = str3.join(recodeSplit_1);
//自定义Map
function getMap() {
var map_ = new Object();
map_.put = function(key, value) {
map_[key + '_'] = value;
};
map_.get = function(key) {
return map_[key + '_'];
};
map_.remove = function(key) {
delete map_[key + '_'];
};
map_.keyset = function() {
var ret = "";
for (var p in map_) {
if (typeof p == 'string' && p.substring(p.length - 1) == "_") {
ret += keyValueSplit_1;
ret += p.substring(0, p.length - 1);
}
}
if (ret == "") {
return ret.split(keyValueSplit_1);
} else {
return ret.substring(1).split(keyValueSplit_1);
}
};
return map_;
}
}
writerOb.write(value_a);
//写成功返回确认
var runFun = responseFun + "(" + saveSuccess + ")";
//字符串转对象
eval_r("(" + runFun + ")");
});
}, onError);
function onError(e) { alert("qqq写文件内容错误:"+e); }
}
// return write1;
}
//读文件中所有内容
function readFromFileAll(filename, keyValueSplit, recodeSplit, responseFun) {
//alert(456)
//var findValue;
var fileSystem1 = null;
var path_1 = filename;
var keyValueSplit_1 = keyValueSplit;
var recodeSplit_1 = recodeSplit;
var file_ = "";
var flag = 1;
document.addEventListener("deviceready", onDeviceReady1, true);
//alert(1)
function onDeviceReady1() {
//alert(2)
//request the persistent file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFSSuccess1, onError);
}
function onFSSuccess1(fs) {//alert("aaa="+ fs);
//alert(3)
fileSystem1 = fs;
doReadFile();
}
function onError(e) {
alert(e);
//getById("#content").innerHTML = "<h2>Error</h2>"+e.toString();
}
function doReadFile() {
//alert(5)
fileSystem1.root.getFile(path_1, {
create: true
}, function(f) {
// alert(6)
reader = new FileReader();
reader.onloadend = function(e) {
console.log("go to end");
file_ = e.target.result;
//alert("9998="+e.target.result)
var total = new Array();
total = file_.split(recodeSplit_1);
//var json1 = new Array();
var json1 = {};
// var i = 0;
for (j = 0; j < total.length; j++) {
//alert(1)
var str = total[j];
var s1 = str.substring(0, str.lastIndexOf(keyValueSplit_1));
var s2 = str.substring(str.lastIndexOf(keyValueSplit_1) + 1);
json1[s1] = s2;
}
//alert(json1)
var runFun = responseFun + "(" + WMW.obj2str(json1) + ")";
//alert(runFun)
eval_r("(" + runFun + ")");
};
reader.readAsText(f);
}, onError);
function onError(e) { alert("读取文件内容错误:"+e); }
}
}
//更具KEY查找文件中值
function readFromFile(filename, key, keyValueSplit, recodeSplit,responseFun) {
var path_1 = filename;
var keyValueSplit_1 = keyValueSplit;
var recodeSplit_1 = recodeSplit;
var file_ = "";
doReadFile();
function doReadFile() {
//alert(doReadFile)
fileSystem.root.getFile(path_1, {
create: true
}, function(f) {
reader = new FileReader();
reader.onloadend = function(e) {
file_ = e.target.result;
//alert("9998=" + e.target.result);
var total = new Array();
total = file_.split(recodeSplit_1);
for (j = 0; j < total.length; j++) {
var str = total[j];
//alert(9)
if (str.substring(0, str.lastIndexOf(keyValueSplit_1)) == key) {
//alert(7)
var value = str.substring(str.lastIndexOf(keyValueSplit_1) + 1);
//alert("value=" + value);
// 设置从文件中读取值
var runFun = responseFun + "(" + value + ")";
// alert(runFun)
eval_r("(" + runFun + ")");
break;
}
}
};
reader.readAsText(f);
}, onError);
function onError(e) {}
}
}
// 设置从文件中读取单个值
function setReadFileValue(val) {
var value = val;
//alert(value);
}
// 设置从文件中读取所有值
function setReadFileAll(val) {
alert(7)
alert("value="+val);
}
// 设置从文件写成功
function setSaveSuccess(val) {
//alert(val)
}
//测试
function test() {
alert("11");
onWrite3();
//readFromFile("dataFile.txt", "nnn", ",", "\r\n");
//readFromFileAll("aaa/dataFile.txt",",","\r\n","setReadFileAll");
//save2File("aa/dataFile.txt", "9999", "99999999", ",", "\r\n");
// save2File("dataFile.txt", "888888", "99999999", ",", "\r\n");
// write2File("dataFile.txt", "wwww", "oooooo", ",", "\r\n", "setReadFileAll");
//alert("aa="+aa)
}
//PhoneGap创建文件代码太过繁琐 就省去了创建文件的过程,传参时只能写文件名,不能加路径
//要想把文件保存在文件夹,就先掉一下onWrite3()创建文件夹的作用。
//说这么多意思就是要把文件写在某个文件下,前提是要有这个文件,传参时才可加路径
//刚开始学,有不足之处还望指教
//文中WMW.obj2str(json1)函数没有提供,对象转换的作用,可用字符串代替直接输出
function onWrite3() {
// alert("onWrite");
document.addEventListener("deviceready", onDeviceReady3, false);
}
function onDeviceReady3() {
//alert("onWrite3()");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS3, fail);
}
//获取newFile目录,如果不存在则创建该目录
function gotFS3(fileSystem) {
var filePath="myfile";
//var filePath = path_1.substring(0, path_1.lastIndexOf("/"));
newFile = fileSystem.root.getDirectory(filePath, {create:true, exclusive:false}, writerFile3, fail);
}
function writerFile3(){}
function fail(){}
相关推荐
例如,对于外部存储(如SD卡),需要在AndroidManifest.xml中声明`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限。 至于压缩包里的"2014.2.261-ark-test-write封装好到js里备份(目录是d盘)",这可能是...
PhoneGap NFC读写信息是移动应用开发中的一个重要领域,它涉及到近场通信(Near Field Communication,简称NFC)技术在Android和iOS等平台上的应用。PhoneGap是一个流行的跨平台框架,它允许开发者使用HTML、CSS和...
总的来说,PhoneGap 2.9.1是一个历史版本,但它展示了PhoneGap跨平台开发的核心理念和早期实现方式。随着技术的发展,PhoneGap不断改进,以适应不断变化的移动开发需求。尽管有其局限性,但PhoneGap依然是许多开发者...
开发者可以通过研究这个版本的源码,了解早期IONIC的架构和实现方式,同时对比新版本,理解IONIC的发展历程。 综合以上,这个压缩包提供了一个使用IONIC和PhoneGap开发的项目源码,以及关于PhoneGap的深入学习材料...
PhoneGap的核心理念是通过Web技术来桥接移动设备的原生功能,如摄像头、地理位置、存储等,让Web开发者也能开发出具有原生体验的移动应用。 在"PhoneGap拍照,图片保存应用"这个主题中,我们将探讨如何利用PhoneGap...
3. **文件系统访问**:通过`file` API,开发者可以读写本地文件,创建文件夹结构,这对于存储用户数据或者离线内容非常有用。在实例中,可能会有文件操作的示例。 4. **通知与对话框**:PhoneGap提供了`通知`API,...
以上就是对"phonegap完整例子!"所涵盖的知识点的详细解析,包括PhoneGap的基本原理、与Android的集成、pad设备的适配、自定义插件的开发以及可能的数据处理策略。这些内容为深入学习和实践PhoneGap开发提供了全面的...
PhoneGap的核心理念是通过Web技术来桥接移动设备的原生功能,使得开发者无需深入学习各种平台的原生代码,就能创建功能丰富的应用。 在这个"PhoneGAP实例源码"压缩包中,包含了三个有趣的实例:汇率换算器、万圣节...
Cordova2.9是PhoneGap的一个重要版本,它在那时提供了对多种移动操作系统的支持,包括iOS、Android、BlackBerry、Windows Phone等。这个版本包含了核心的API接口和插件系统,使得开发者可以通过JavaScript调用设备...
- **同步调用支持**:除了异步调用,PhoneGap也支持同步调用方式,但这种方式可能会影响用户体验。 - **通信机制**:PhoneGap通过JavaScript和原生代码之间的消息传递来实现通信。例如,使用XMLHttpRequest(XHR)或...
PhoneGap环境搭建是开发跨平台移动应用的第一步,这里我们将详细讲解如何进行PhoneGap的配置和安装。 1. **系统需求**:首先,你需要一个支持PhoneGap开发的计算机系统,通常要求是Windows、Mac OS或Linux。确保...
PhoneGap 6.3.0版本可能包含一些新的特性和改进,例如性能优化、错误修复或者对新API的支持。开发者在使用过程中应关注官方文档和更新日志,以获取最新的开发信息和最佳实践。总的来说,PhoneGap桌面版6.3.0是一个...
3. **PhoneGap Camera Plugin**:PhoneGap的相机插件提供了一种更简单的方式来访问设备的摄像头。开发者可以通过调用`navigator.camera.getPicture`方法,选择拍照或从相册选取图片,并获取图片的Base64编码或文件...
这个"PhoneGap demo"作为一个实际案例,可以帮助开发者理解PhoneGap的工作原理,学习如何将Web技术应用于移动开发,同时也可以借鉴其设计和实现方式,提升自己的开发技能。尽管对于初学者来说可能有一定难度,但它...
总的来说,PhoneGap为开发者提供了一种便捷的方式来构建跨平台的移动应用,通过理解其安装和调试流程,开发者可以更加高效地进行项目开发。同时,掌握各种调试技巧有助于快速定位问题,提升开发体验。在实际工作中,...
5. **文件系统插件**:提供对设备本地存储的读写操作,方便应用保存和读取用户数据。 6. **网络状态插件**:检测设备的网络连接类型(如WiFi、蜂窝数据)和连接状态,有助于优化网络请求和用户体验。 7. **设备...
3. 本地存储:PhoneGap支持Web Storage(包括localStorage和sessionStorage)以及SQLite数据库。通过`chapter9b.html`,我们可以学习如何在应用中持久化数据,如使用`window.localStorage`或`window.openDatabase()`...
这个“phonegap-1.0.0rc2.zip”文件是PhoneGap的一个早期版本,版本号为1.0.0 Release Candidate 2,这表明它是一个在正式版本发布前的候选版本,可能包含了对早期版本的改进和修复。 PhoneGap的核心理念在于利用...