MNetwork Framework 에 대한 필수 API 를 정의
네크워크 관련된 기능들을 제공
Example:
M.net.cookie.clear();
Changed in version 2.2.0
Arguments
Arguments
Arguments
Arguments
Example:
M.net.http.send({
server: 'DEMO',
path: 'language/translate/v2/detect',
method: 'POST',
timeout: 5000,
userData: {urlInfo: 'http://www.uracle.co.kr'},
indicator:{
show: true,
message: 'Loading..',
cancelable: true
},
data: {
key: 'AIzaSyDbk0nUTyd4ChyFrCkHa-XAufg6-0u-OLw',
q: 'test'
},
success: function(recevedData, setting) {
console.log( "onSuccess, " + JSON.stringify(recevedData) );
},
error: function(errorCode, errorMessage, setting) {
console.log( "onError, " + errorCode + ", " + errorMessage );
}
});
M.net.http.send({
server: 'DEMO_SERVER',
path: 'api/msp/sample/test',
method: 'POST',
userData: {urlInfo: 'http://www.uracle.co.kr'},
indicator: {
show: false
},
data: {
'deploy' : '0',
'version': '000000',
'rsp' : '0b3235695f40f279ba3bda96497b894eb457ce73f8dcd6ec4d2c39d1fa622dac7b8e4c52f9b477e759343f07969bfe1d'
},
onSuccess: function(recevedData, setting) {
M.tool.log( "onSuccess", recevedData );
alert( "onSuccess, " + JSON.stringify(recevedData) );
},
"onError": function(errorCode, errorMessage, setting) {
M.tool.log( "onError", errorCode, errorMessage );
alert( "onError, " + errorCode + ", " + errorMessage );
}
});
M.net.http.send({
server: 'DEMO_SERVER',
path: 'api/msp/sample/test',
method: 'POST',
timeout: '1000',
userData: {urlInfo: 'http://www.uracle.co.kr'},
dummy: false,
secure: false,
indicator:{
show: true,
message: 'Loading..',
cancelable: true
},
data: {
'deploy' : '0',
'version': '000000',
'rsp' : '0b3235695f40f279ba3bda96497b894eb457ce73f8dcd6ec4d2c39d1fa622dac7b8e4c52f9b477e759343f07969bfe1d'
},
onSuccess: function(recevedData, setting) {
M.tool.log( "onSuccess", recevedData );
alert( "onSuccess, " + JSON.stringify(recevedData) );
},
"onError": function(errorCode, errorMessage, setting) {
M.tool.log( "onError", errorCode, errorMessage );
alert( "onError, " + errorCode + ", " + errorMessage );
}
});
Changed in version 2.2.0
Arguments
Arguments
Arguments
Arguments
Example:
var sendData = new DataSendingHandler();
sendData.putHeadInfo("command","0");
var templeteData = new DataReceivingHandler();
M.net.socket.send({
'server': 'TCP_TEST',
'path': 'S14',
'data': sendData,
'templeteData': templeteData,
'encrypt': false,
'indicator': {
'show': false,
'message': '',
'cancelable': false
},
'start': function( setting ) {
WNLog("CJD", "socket.send.start : " + JSON.stringify(setting));
console.log( 'socket.send.start', setting );
},
'finish': function( setting ) {
WNLog("CJD", "socket.send.finish : " + JSON.stringify(setting));
console.log( 'socket.send.finish', setting );
},
'success': function(receivedData, trCode) {
WNLog("CJD", "socket.send.success");
console.log( 'socket.send.success' );
if(receivedData.length > 0){
var strBuff = '';
for(var i=0; i<receivedData.length; i++){
strBuff += '<li>';
strBuff += ' <div class="hbox jc">';
strBuff += ' <div class="wifi_info">';
strBuff += ' <p class="name">' + receivedData[i].SSID + '</p>';
strBuff += ' </div>';
strBuff += ' <p class="icon_wifi ' + getWifiIcon(getWifiLevel(receivedData[i].level)) + '"></p>';
strBuff += ' </div>';
strBuff += '</li>';
}
$("#wifiList").html(strBuff);
$("#wifiList > li").on("click", function(){
var $this = $(this);
mPageHtml("wifi_setting", {
param : {
SSID : receivedData[$this.index()].SSID
}
});
});
}
},
'error': function() {
WNLog("CJD", "socket.send.error");
console.log( 'socket.send.error' );
popup.confirm.create({
message : "목록 조회에 실패했습니다. 설정을 확인하시겠습니까?",
yesCB : function(){
exWNMoveToWifiSetting();
},
noCB : function(){
mPageBack();
}
});
}
});
Changed in version 2.1.4.13
Arguments
Arguments
Arguments
Arguments
Arguments
Arguments
Example [Default]:
var nextPage = "/www/html/common/main.html";
M.net.res.update({
finish : function(status, info, option) {
switch (status) {
// 리소스 업데이트 성공
case 'SUCCESS':
$(".progress-bar").css("width", '100%');
M.page.html(nextPage, {action:"CLEAR_TOP"});
break;
// 리소스 업데이트 성공 And Refresh
case 'SUCCESS_AND_REFRESH':
M.page.replace('intro.html');
break;
// 앱 권장 업데이트
case 'RECOMMENDED_APP_UPDATING' :
M.pop.alert({
title: '알림',
message: '앱 권장 업데이트가 있습니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
var appUrl = info.app_version_info.download_market_url;
M.apps.browser(appUrl);
}else{
M.page.html(nextPage, {action:"CLEAR_TOP", delay:600});
}
}
});
break;
// 앱 강제 업데이트
case 'FORCED_APP_UPDATING' :
M.pop.alert({
title: '알림',
message: '앱을 업데이트해야 합니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
var appUrl = info.app_version_info.download_market_url;
M.apps.browser(appUrl);
}else{
M.sys.exit();
}
}
});
break;
// 라이센스 체크 에러
case 'LICENSE_IS_NOT_EXISTENCE':
// 라이센스 무결성 회손
case 'BROKEN_INTEGRITY_OF_LICENSE':
// 라이센스 기간 만료
case 'EXPIRED_LICENSE':
M.pop.alert({
title: '알림',
message: '라이센스 에러입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
// 설치 메모리 부족
case 'INSUFFICIENT_MEMORY':
M.pop.alert({
title: '알림',
message: '설치 메모리가 부족합니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
// 외장 메모리 카드 사용 오류
case 'EXT_MEM_NOT_AVAIL':
M.pop.alert({
title: '알림',
message: '외장 메모리 오류입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
// UNDEFINED ERROR
default:
M.pop.alert({
title: '알림',
message: '알 수 없는 오류입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
}
},
progress : function(total, read, remain, percentage, option) {
console.log('** progress', total, read, remain, percentage);
var progressBarWidth = Math.max( Math.min( percentage, 100 ), 0 ) + "%";
$(".progress-bar").css("width", progressBarWidth);
$(".progress-percent").html( percentage + '%' );
},
error : function(errCode, errMsg, option) {
M.debug.error("** error : ", errCode, errMsg);
M.pop.alert({
title: '알림',
message: '알 수 없는 오류입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
}
});
Example [Option]:
var nextPage = "/www/html/common/main.html";
M.net.res.update({
server : "RES_UPDATE",
mode : "dev",
finish : function(status, info, option) {
switch (status) {
// 리소스 업데이트 성공
case 'SUCCESS':
$(".progress-bar").css("width", '100%');
M.page.html(nextPage, {action:"CLEAR_TOP"});
break;
// 리소스 업데이트 성공 And Refresh
case 'SUCCESS_AND_REFRESH':
M.page.replace('intro.html');
break;
// 앱 권장 업데이트
case 'RECOMMENDED_APP_UPDATING' :
M.pop.alert({
title: '알림',
message: '앱 권장 업데이트가 있습니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
var appUrl = info.app_version_info.download_market_url;
M.apps.browser(appUrl);
}else{
M.page.html(nextPage, {action:"CLEAR_TOP", delay:600});
}
}
});
break;
// 앱 강제 업데이트
case 'FORCED_APP_UPDATING' :
M.pop.alert({
title: '알림',
message: '앱을 업데이트해야 합니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
var appUrl = info.app_version_info.download_market_url;
M.apps.browser(appUrl);
}else{
M.sys.exit();
}
}
});
break;
// 라이센스 체크 에러
case 'LICENSE_IS_NOT_EXISTENCE':
// 라이센스 무결성 회손
case 'BROKEN_INTEGRITY_OF_LICENSE':
// 라이센스 기간 만료
case 'EXPIRED_LICENSE':
M.pop.alert({
title: '알림',
message: '라이센스 에러입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
// 설치 메모리 부족
case 'INSUFFICIENT_MEMORY':
M.pop.alert({
title: '알림',
message: '설치 메모리가 부족합니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
// 외장 메모리 카드 사용 오류
case 'EXT_MEM_NOT_AVAIL':
M.pop.alert({
title: '알림',
message: '외장 메모리 오류입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
// UNDEFINED ERROR
default:
M.pop.alert({
title: '알림',
message: '알 수 없는 오류입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
break;
}
},
progress : function(total, read, remain, percentage, option) {
console.log('** progress', total, read, remain, percentage);
var progressBarWidth = Math.max( Math.min( percentage, 100 ), 0 ) + "%";
$(".progress-bar").css("width", progressBarWidth);
$(".progress-percent").html( percentage + '%' );
},
error : function(errCode, errMsg, option) {
M.debug.error("** error : ", errCode, errMsg);
M.pop.alert({
title: '알림',
message: '알 수 없는 오류입니다.',
buttons: ['취소', '확인'],
callback: function(index) {
if(index == 1){
M.net.res.retry();
}else{
M.sys.exit();
}
}
});
}
});
Changed in version 2.1.4.13
Arguments
Arguments
Example:
M.net.res.check({
callback: function (status, info) {
if (status !== 'IS_RESOURCE_UPDATE') {
return M.pop.alert('리소스 업데이트를 실패하였습니다.');
}
if(info.update) {
// 업데이트 가능한 경우
M.net.res.update({
//.. 중략
})
} else {
// 업데이트가 없는 경우 (최신버전인 경우)
M.page.html('login.html');
}
}
});
Changed in version 2.1.4.13
Example:
M.net.res.reset();
CODE | Description |
---|---|
9994 | 네트워크 URL Error |
9995 | 네트워크 통신중 취소처리 |
9996 | 네트워크 연결 에러 |
9997 | 통신중 에러 / 통신 내부 에러 |
9998 | 네트워크 응답시간 초과 에러 |
9999 | 서버에서 리턴된 에러 |
404 | Not found(네트워크 연결 실패) |