본문 바로가기

기존카테고리/하이브리드앱

알림

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8" />

    <meta name="format-detection" content="telephone=no" />

    <meta name="msapplication-tap-highlight" content="no" />

    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />


<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"/>

<script src="http://code.jquery.com/jquery.min.js"></script>

<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

    <title>CordovaAPI</title>

</head>

    <body>

    <div data-role="page">

<div data-role="header">

<h1>API 다루기</h1>

</div>


<div role="main" class="ui-content">

<a href = "device.html" data-role="button">디바이스정보</a>

<a href = "motion.html" data-role="button">디바이스모션</a>

<a href = "notification.html" data-role="button">알림(notification)</a>

<a href="fileRW.html" data-role="button">파일관리</a>

<a href="dirManage.html" data-role="button">폴더관리</a>

</div>


<div data-role="footer" data-position="fixed">

<h3>hybridApp</h3>

</div>

</div>

<script type="text/javascript" src="cordova.js"></script>

    <script type="text/javascript" src="js/index.js"></script>


    </body>

</html>




<!--
  알림(notification)

alert(경고창)
  navigator.notification.alert(메시지, 콜백함수, 타이틀, 버튼명)

confirm(확인창)
  navigator.notification.confirm(메시지, 콜백함수, 타이틀, 버튼명)

prompt(질문 및 답변창)
  navigator.notification.prompt(메시지, 콜백함수, 타이틀, 버튼명, 기본텍스트)

beep - 비프음(진동모드시 진동횟수)
  navigator.notification.beep(횟수)
-->

<div data-role="page">
<div data-role="header">
<h1>알림(notification)</h1>
</div>

<div role="main" class="ui-content">
<input type="button" id="alertBtn" value="경고창"/>
<input type="button" id="confirmBtn" value="확인창" />
<input type="button" id="promptBtn" value="프롬프트창" />
<input type="button" id="beepBtn" value="벨소리" />
<input type="button" id="btnVibrate" value="진동" />

<div class="ui-body ui-body-a">
결과 : <div id="result"></div>
</div>

<a data-rel="back" data-role="button" data-theme="b">뒤로..</a>

</div>

<div data-role="footer" data-position="fixed">
<h3>hybridApp</h3>
</div>
</div>





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);


'기존카테고리 > 하이브리드앱' 카테고리의 다른 글

디바이스 정보 얻기  (0) 2017.11.06
mobile API - parseUrl  (0) 2017.11.05
mobile API - changePage  (0) 2017.11.05
디바이스 방향계  (0) 2017.11.04
applicaton cache  (0) 2017.11.04