웹마스터 팁
폰갭 작업시 폰 내부 html에 변수 전달 방법 (get)
2014.12.09 18:13
폰갭이든 안드로이드에서 www에서 index.html 안에 각종 html과 jqm으로 처리합니다.
이떄 각 메뉴에 get 변수 전달을 하게 되면 php의 경우 $_GET로 받으면 되지만 자바스크립트에서는 그게 되지 않습니다.
이경우 사용하는 스크립트입니다.
100% 네이티브 개발에서는 이렇게사용하지는 않지만 JQM으로 보통 개발할떄는 어플과 홈페이지 간에 AJAX로 주고 받아야 되므로 각메뉴 변경시에 폰내부의 index.html menu1.html 이렇게 링크 될겁니다. 이때 페이지간의 변수 전달 방법입니다.
var getParameter = function (param) {
var returnValue;
var url = location.href;
var parameters = (url.slice(url.indexOf('?') + 1, url.length)).split('&');
for (var i = 0; i < parameters.length; i++) {
var varName = parameters[i].split('=')[0];
if (varName.toUpperCase() == param.toUpperCase()) {
returnValue = parameters[i].split('=')[1];
return decodeURIComponent(returnValue);
}
}
};
var uid=gvar getParameter = function (param) {
var returnValue;
var url = location.href;
var parameters = (url.slice(url.indexOf('?') + 1, url.length)).split('&');
for (var i = 0; i < parameters.length; i++) {
var varName = parameters[i].split('=')[0];
if (varName.toUpperCase() == param.toUpperCase()) {
returnValue = parameters[i].split('=')[1];
return decodeURIComponent(returnValue);
}
}
};
var uid=getParameter('uid');
alert (uid);
alert (uid);
이렇게 처리해주시면 uid라는 값을 가지게 되고 getParameter(변수명); 으로 값을 이용하시면 됩니다.
거의 대부분 폰갭으로 처리하실건데 아시다 시키 키캣 4.4.4 이전버전에서는 file첨부 문제가 있습니다. 폰갭에서도 안되고 모바일 페이지에서는 크롬으로 불러야만 가능합니다. 이문제들을 해결하기 위해서는 대부분 예전과 같이 모바일 페이지에 apk만 묶는 방법으로는 어플이 제대로 동작하지 않습니다. 물론 뒤로가기 등등의 문제들도 있고요.
이렇게 처리하시면 index.html에서 각메뉴들은 빈 껍질로 폰갭안에 두고소 $.post로 받아서 각페이지를 넣어 주시면 됩니다.
작업은 많아 지지만 그 속도는 모바일 페이지와 비교가 안될 정도로 빨라집니다.