<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
var onAccelerometerSuccess = function(acceleration){
$("#x").text(acceleration.x);
$("#y").text(acceleration.y);
$("#z").text(acceleration.z);
$("#time").text(acceleration.timestamp);
}
var onAccelerometerFail = function(message){
alert(message);
}
var onAlert = function(){
$("#result").text("alert");
}
var onConfirm = function(btnidx){
if(btnidx == 1) $("#result").text("확인버튼을 눌렀습니다!!");
else $("#result").text("취소버튼을 눌렀습니다!!");
}
var onPrompt = function(data){
if(data.buttonIndex == 1) $("#result").text("당신의 이름은 "+data.input1);
else $("#result").text("이름을 입력하지 않았네요!!!");
}
///////// 파일 핸들링 코드 ///////////
var myFS = null; // 파일 시스템 관리 객체인 FileSystem을 저장하는 멤버변수
var myFE = null; // 파일 관리 객체인 FileEntry를 저장하는 멤버변수
var onGetFS = function(fs){
myFS = fs;
/* 파일에 액세스 할 수 있는 FileEntry 객체를 요청하는 방법
FileSystem.root.getFile(FilePath, Flags, success, error)
FilePath : 파일에 대한 전체 경로
Flags : 파일이 존재하지 않을 경우 생성 여부를 지정하는 속성이다. JSON형태로 지정한다.
JSON 지정 속성
- create : true를 지정하면 파일이 존재하지 않을 경우에 새로 생성한다.
만일 파일이 존재하면 새로 생성하지 않는다.
- exclusive : true를 지정하면 파일이 존재하더라도 무시하고 새로 생성한다. create 속성을 true로 지정했을 때만 의미가 있다.
success : FileEntry 요청 성공 했을 경우 호출되는 콜백함수
error : FileEntry 요청 실패 했을 경우 호출되는 콜백함수
*/
fs.root.getFile("test.txt", {create:true, exclusive:false}, onGetFE, fileFail);
}
var onGetFE = function(fe){
myFE = fe;
$("#message").text("FileEntry 객체 요청 성공!!");
}
var fileFail = function(error){
$("#message").text("에러 사항 : "+error.code);
}
var fileRead = function(){
if(myFE)
//FileEntry 객체가 존재하면 File객체를 구한다.
// File객체는 파일정보를 갖고 있다.
// File 객체를 구하는(요청하는) 함수는 바로 file()이다.
// FileEntry.file(success, error)
myFE.file(onGetFile, fileFail);
else
$("#message").text("FileEntry 객체가 존재하지 않습니다!!");
}
var onGetFile = function(file){
var fileInfo = "<br/>[file 정보]"
+ "<br/> * 파일명 : "+file.name
+ "<br/> * 파일경로 : "+file.fullPath
+ "<br/> * 파일타입 : "+file.type
+ "<br/> * 파일수정일자 : "+file.lastModifiedDate
+ "<br/> * 파일크기 : "+file.size+"bytes";
$("#message").html(fileInfo);
var reader = new FileReader();
/* FileReader.onloadend : 파일읽기가 완료되었을 때 실행되는 콜백함수를 지정한다.
*/
reader.onloadend = function(evt) {
$("#inputBox").val(evt.target.result);
}
// FileReader.readAsText(File) : FileReader객체에 File객체를 전달해서 파일을 읽어오는 함수, 이 함수를 호출한 후 파일 읽기가 완료되면 onloadend속성에 지정된 콜백함수를 실행한다.
reader.readAsText(file);
}
var fileWrite = function(){
if(myFE)
/* FileWriter 객체를 요청하는 함수
createWriter(success, error);
*/
myFE.createWriter(onGetFW, fileFail);
else
$("#message").text("FileEntry 객체가 존재하지 않습니다!!");
}
var onGetFW = function(fw){
var txt = $("#inputBox").val();
fw.onwriteend = function(e){
$("#message").text("파일에 내용 입력 완료!!");
}
fw.write(txt);
}
var fileDel = function(){
if(myFE)
// FileEntry.remove(success, error) : 파일 삭제를 요청하는 함수이다.
myFE.remove(removeSuccess, fileFail);
else
$("#message").text("FileEntry 객체가 존재하지 않습니다!!");
}
var removeSuccess = function(){
$("#message").text("파일 삭제 완료!!");
// 파일이 삭제 되면 FileEntry 객체도 사라진다. 따라서 FileEntry객체를 다시 생성해야 한다.
onGetFS(myFS);
}
//////////////////////////////////////
var onDeviceReady = function(){
$("#device").text(device.cordova);
$("#model").text(device.model);
$("#platform").text(device.platform);
$("#uuid").text(device.uuid);
$("#version").text(device.version);
$("#getAccelerateBtn").tap(function(){
navigator.accelerometer.getCurrentAcceleration(onAccelerometerSuccess,onAccelerometerFail);
});
$("#alertBtn").tap(function(){
navigator.notification.alert("경고입니다.", onAlert, "경고창", "확인");
});
$("#confirmBtn").tap(function(){
navigator.notification.confirm("선택하세요", onConfirm, "확인창", ["확인","취소"]);
});
$("#promptBtn").tap(function(){
navigator.notification.prompt("입력하세요", onPrompt, "입력창", ["확인","취소"],"당신의 이름을 입력하세요");
});
$("#beepBtn").tap(function(){
navigator.notification.beep(3);
});
$("#btnVibrate").tap(function(){
navigator.notification.vibrate(500);
});
/* requestFileSystem함수는 폰갭이 로딩이 될 때 FileSystem을 요청한다.
requestFileSystem(spaceType, expectSize, success, error);
[ 파라미터 ]
spaceType : 공용폴더와 임시폴더를 선택할 수 있는 인자
PERSISTENT - 공용폴더를 의미
TEMPORARY - 임시폴더를 의미
expectSize : 필요한 용량을 지정하는데 byte 단위로 지정한다. 단위를 모르는 경우는
0로 지정한다.
success : 파일시스템 요청 성공시 호출되는 콜백함수
error : 파일시스템 요청 실패시 호출되는 콜백함수
*/
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onGetFS, fileFail);
$("#writeBtn").tap(fileWrite);
$("#readBtn").tap(fileRead);
$("#delBtn").tap(fileDel);
}
var init = function(){
document.addEventListener('deviceready', onDeviceReady, false);
}
$(document).on("pageinit", init);