Core¶
Core Library 를 MCore 라고 부른다.
MCore¶
MCore Framework 에 대한 필수 API 를 정의
Common Event¶
화면 Page 의 생성,이동,제거 시 WebView의 Native 상태에 따라서 Event 함수들이 자동으로 호출
각 Event 함수들은 중복으로 여러개 등록이 가능하며, 사용하려고 하는 함수들만 등록 하여 사용
-
M.
onReady
(handler)¶ Changed in version 2.1.0.
- Arguments
handler (Function) – Event Handler
-
M.
handler
(event)¶ - Arguments
event (Page Event Object) – 이벤트 객체
화면 로딩이 최종 완료시 한번만 호출
데이타 초기화, 서버로의 데이타 요청 등에 사용
iframe 등 으로 외부 페이지 오픈시 iframe 내 페이지까지 모두 완료되야 호출됨
DOM Content Loaded 와는 별개로 동작함
Example:
M.onReady( function(e) { // TODO : ready event handle code here });
-
M.
onHide
(handler)¶ Changed in version 2.1.0.
- Arguments
handler (Function) – Event Handler
-
M.
handler
(event)¶ - Arguments
event (Page Event Object) – 이벤트 객체
화면 이동 바로 현재 페이지에서 호출
현재 화면의 데이타 저장 및 처리 등에 사용
Example:
M.onHide( function(e) { // TODO : hide event handle code here });
-
M.
onRestore
(handler)¶ Changed in version 2.1.0.
- Arguments
handler (Function) – Event Handler
-
M.
handler
(event)¶ - Arguments
event (Page Event Object) – 이벤트 객체
해당 화면으로 다시 돌아왔을 때 호출
데이타 갱신 등에 사용
Example:
M.onRestore( function(e) { // TODO : restore event handle code here });
-
M.
onBack
(handler)¶ Changed in version 2.1.0.
- Arguments
handler (Function) – Event Handler
-
M.
handler
(event)¶ - Arguments
event (Page Event Object) – 이벤트 객체
단말기에서 Back 키가 눌려졌을때 호출 (Only Android)
Example:
M.onBack( function(e) { // TODO : back event handle code here (android only) });
-
M.
onPause
(handler)¶ Changed in version 2.1.0.
- Arguments
handler (Function) – Event Handler
-
M.
handler
(event)¶ - Arguments
event (Page Event Object) – 이벤트 객체
현재 앱이 Background 상태로 바뀔때 현재 화면에서 호출
Example:
M.onPause( function(e) { // TODO : pause event handle code here });
-
M.
onResume
(handler)¶ Changed in version 2.1.0.
- Arguments
handler (Function) – Event Handler
-
M.
handler
(event)¶ - Arguments
event (Page Event Object) – 이벤트 객체
Bakcground 상태의 앱이 다시 Forground 상태로 바뀔때 현재 화면에 호출
Example:
M.onResume( function(e) { // TODO : resume event handle code here });
-
M.
onDestroy
(handler)¶ Changed in version 2.1.0.
- Arguments
handler (Function) – Event Handler
-
M.
handler
(event)¶ - Arguments
event (Page Event Object) – 이벤트 객체
화면이 메모리에서 제거될때 마지막으로 호출
데이타 보존이나 마무리를 위한 처리 등에 사용
단, 앱의 종료시에는 호출되지 않음
Example:
M.onDestroy( function(e) { // TODO : destroy event handle code here });
Event Flow¶
Event Flow
Page API¶
화면 이동에 대한 API 를 제공
Action Type¶
Type |
Int |
Description |
---|---|---|
NEW_SCR |
0 |
대상이 되는 화면을 추가 |
NO_HISTORY |
1 |
대상이 되는 화면을 Stack 에 포함하지 않음 |
CLEAR_TOP |
2 |
대상이 되는 이전 화면으로 이동. 이동시 현재 화면 사이의 모든 화면은 제거됨. |
Orientation Type¶
모든 Orientation 값은 Application 설정에 영향을 받음
Manifest.xml 에서도 orient 값이 DEFAULT 인 경우 Application 설정의 첫번째 값을 적용
Type |
Int |
Description |
---|---|---|
DEFAULT |
0 |
Manifest.xml 에서 설정한 orient 값 적용 |
PORTRAIT |
1 |
세로모드, 홈버튼이 아래인 세로 방향으로 회전 유지 |
PORT |
1 |
PORTRAIT 을 축약 |
LANDSCAPE |
2 |
가로모드, 왼쪽 회전된 상태 유지 |
LAND |
2 |
LANDSCAPE 를 축약 |
PORTRAIT|REVERSE |
3 |
세로모드, 세로 방향만 허용, 회전 가능 |
PORT|REVERSE |
3 |
PORTRAIT 을 축약 |
PORTREV |
3 |
PORTRAIT|REVERSE 를 축약 |
LANDSCAPE|REVERSE |
4 |
가로모드, 가로 방향만 허용, 회전 가능 |
LAND|REVERSE |
4 |
LANDSCAPE 를 축약 |
LANDREV |
4 |
LANDSCAPE|REVERSE 를 축약 |
ALL |
5 |
모든 방향으로 허용 |
Animation Type¶
Manifest.xml 에서도 animate 값이 DEFAULT 인 경우 SLIDE_LEFT 적용
Type |
Int |
Description |
---|---|---|
DEFAULT |
0 |
Manifest.xml 에서 설정한 animate 값 적용 |
NONE |
1 |
애니메이션 효과 없음 |
SLIDE_LEFT |
2 |
왼쪽으로 이동되는 슬라이드 효과 |
SLIDE_RIGHT |
3 |
오른쪽으로 이동되는 슬라이드 효과 |
SLIDE_TOP |
4 |
위쪽으로 이동되는 슬라이드 효과 |
SLIDE_BOTTOM |
5 |
아래쪽으로 이동되는 슬라이드 효과 |
ZOOM_IN |
6 |
줌인 효과 |
ZOOM_OUT |
7 |
줌아웃 효과 |
FADE |
8 |
페이드 효과 |
MODAL_UP |
9 |
원본 화면은 고정되어 있고 대상 화면만 위쪽으로 이동되는 슬라이드 효과 |
MODAL_DOWN |
10 |
원본 화면은 고정되어 있고 대상 화면만 아래쪽으로 이동되는 슬라이드 효과 |
Page Event Object¶
현재 화면 정보를 담은 이벤트 객체
Key |
Type |
Description |
---|---|---|
action |
String |
Page Action ( Action Type ) |
orient |
String |
Page Orientation ( Orientation Type ) |
params |
Object |
Page Parameters, Event 발생시 현재 Page의 Parameters 값 (허용 사이즈 : 1Mb) |
path |
String |
Page 경로값 |
filename |
String |
Page 의 파일명 |
alias |
String |
Page 의 Alias 경로 |
source |
String |
Page 의 Source 경로 |
browser |
String |
Brower Name |
browserVer |
String |
Browser Version |
device |
Object |
Device 정보 |
device.mobile |
Boolean |
Mobile 여부 |
device.tablet |
Boolean |
Tablet 여부 |
device.os |
String |
OS 값 ( ios: iOS, android: Android ) |
device.version |
String |
OS Version 값 |
os |
String |
device.os 값을 항상 소문자로 출력 |
osVer |
String |
device.version 과 동일 |
screenWidth |
Int |
Screen Width |
screenHeight |
Int |
Screen Height |
scrollWidth |
Int |
Content Width |
scrollHeight |
Int |
Content Height |
stack |
Array |
Stack 정보 |
tabStack |
Object |
현재 Stack의 Tab 정보 |
time |
Int |
화면이 생성되고 경과된 시간 ( 1Sec = 1000 ) |
URL Rule¶
페이지 경로는 html 파일 명으로 하여 이동
다른 폴더의 접근은 현제 페이지에서 상대경로로 호출하여 이동 가능
절대경로로 호출하는 경우 “www/html” 를 시작으로 호출(예: “www/html/sample.html” )
외부 웹페이지 경로인 경우 http:// 또는 https:// 를 포함한 경로로 호출
현재 페이지가 외부 페이지 인 경우 현재 페이지에서 상대경로로 이동 가능
Native Class Name Rule¶
Class 명은 namespace 를 제외한 이름만을 가지고 호출
namespace 는 제외하므로 App 내 해당 Class 는 1개만 존재해야됨.
호출할 Native Class는 아래 개체를 상속해야됨.
Android 의 경우는 BaseActivity
iOS 의 경우는 PPNativeViewController
Page Info¶
-
M.page.
info
()¶ New in version 2.1.5.
- Returns
Page 정보 추출
Example:
M.page.info();
-
M.page.
info
(keyPath)¶ New in version 2.1.5.
- Arguments
keyPath (String) – Page Event Object 의 Key 값
- Returns
Page Event 객체의 Key 에 해당하는 값만 을 출력
Example:
// OS 구분 if ( M.page.info("device.os") == "iOS" ) { // this is iOS } else if ( M.page.info("device.os") == "Android" ) { // this is Android } // OS 와 Version 확인 if ( M.page.info("os") == "ios" && M.page.info("device.version") < "7.0" ) { // iOS 7.0 미만인 경우 처리 } // Event 시간 활용 if ( M.page.info("time") > 60 * 60 ) { // iOS 7.0 미만인 경우 처리 }
Page Defer¶
-
M.page.
defer
(enabled[, time])¶ New in version 2.1.1.
- Arguments
enabled (Boolean) – 지연 이동 기능 사용 여부
time (Int) – 지연할 시간
화면의 지연 이동 기능을 제어
Example:
// 0.5초 후 페이지 이동을 실행 M.page.defer(true, 500); // 지연 실행기능을 끔 M.page.defer(false);
Page 호출¶
-
M.page.
html
(options)¶ Changed in version 2.1.2.
- Arguments
options (Object) – 설정 값
options.url (String) – 이동할 Page 위치값, URL Rule, 필수 값
options.param (String or Object) – Parameter 값
options.actionType (Action Type) – History Action Type, Default: ‘NEW_SCR’
options.animation (Animation Type) – Animation Type, Default: ‘DEFAULT’
options.orientation (Orientation Type) – Orientation Type, Default: ‘DEFAULT’
options.delay (Int) – After Delay ( 1Sec = 1000 ), Default: 0
options.force (Boolean) – 현재페이지가 아닌 경우에도 페이지 이동 실행 허용, Default: false
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
path = url
params = param
parameter = param
parameters = param
action = actionType
animate = animation
animationType = animation
orientationType = orientation
Example:
전체 옵션 적용
M.page.html({ url: "sample.html", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }, actionType: "NEW_SCR", animation: "DEFAULT", orientation: "DEFAULT", delay: 0, force: false });
기본값 생략
M.page.html({ url: "sample.html", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
NO History 적용
M.page.html({ url: "skip.html", actionType: "NO_HISTORY" });
-
M.page.
html
(url, options)¶ Changed in version 2.1.0.
- Arguments
url (String) – 이동할 Page 위치값, URL Rule, 필수 값
options (Object) – 설정값 동일
Example:
페이지 명만 적용
M.page.html("sample.html");
옵션 적용
M.page.html("sample.html", { param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
화면 이동
M.page.html('page-html-terminal.html');
화면 이동 (URL)
M.page.html('http://m.naver.com');
화면 이동 (Animation)
M.page.html('page-html-terminal.html', { 'animate': 'SLIDE_TOP' });
화면 이동 (Action)
M.page.html('page-html-terminal.html', { 'animate': 'SLIDE_RIGHT', 'action': 'NO_HISTORY' });
화면 이동 (Orientation)
M.page.html('page-html-terminal.html', { 'animate': 'SLIDE_TOP', 'orient': 'LAND', 'action': 'NO_HISTORY' });
화면 이동 (Parameter)
//허용 사이즈 : 1Mb (android bundle 허용 size) M.page.html('page-html-terminal.html', { 'param': { 'a':'1', 'b':'2', 'c':'3' } });
하드웨어 가속 사용 (Parameter)
M.page.html('page-html-terminal.html', { param: {"__HARDWARE_ACCELERATE_FOR_ACTIVITY__" : "Y"} });
Page Back¶
-
M.page.
back
(options)¶ Changed in version 2.1.0.
- Arguments
options (Object) – 설정 값
options.param (String or Object) – Parameter 값
options.animation (Animation Type) – Animation Type, Default: ‘DEFAULT’
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
params = param
parameter = param
parameters = param
animate = animation
animationType = animation
Example:
전체 옵션 적용
M.page.back({ param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }, animation: "DEFAULT" });
기본값 생략
M.page.back({ param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
옵션 없이 실행
M.page.back();
Page Remove¶
Page Replace¶
-
M.page.
replace
(options)¶ Changed in version 2.1.0.
- Arguments
options.url (String) – 이동할 Page 위치값, URL Rule, 필수 값
options.param (String or Object) – Parameter 값
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
path = url
params = param
parameter = param
parameters = param
-
M.page.
replace
(url, options)¶ Changed in version 2.1.0.
- Arguments
url (String) – 이동할 Page 위치값, URL Rule, 필수 값
options (Object) – 설정값 동일
Example:
페이지 명만 적용
M.page.replace("sample.html");
옵션 포함
M.page.replace({ url : "sample.html", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
URL 적용
M.page.replace('http://m.naver.com');
Tab Page 호출 (deprecated)¶
-
M.page.tab.
html
(options)¶ Changed in version 2.1.2.
- Arguments
options (Object) – 설정 값
options.url (String) – 이동할 Page 위치값, URL Rule, 필수 값
options.param (String or Object) – Parameter 값
options.actionType (Action Type) – History Action Type, Default: ‘NEW_SCR’
options.animation (Animation Type) – Animation Type, Default: ‘DEFAULT’
options.orientation (Orientation Type) – Orientation Type, Default: ‘DEFAULT’
options.delay (Int) – After Delay ( 1Sec = 1000 ), Default: 0
options.force (Boolean) – 현재페이지가 아닌 경우에도 페이지 이동 실행 허용, Default: false
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
path = url
params = param
parameter = param
parameters = param
action = actionType
animate = animation
animationType = animation
orientationType = orientation
Example:
전체 옵션 적용
M.page.tab.html({ url: "sample.html", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }, actionType: "NEW_SCR", animation: "DEFAULT", orientation: "DEFAULT", delay: 0, force: false });
기본값 생략
M.page.tab.html({ url: "sample.html", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
NO History 적용
M.page.tab.html({ url: "skip.html", actionType: "NO_HISTORY" });
-
M.page.tab.
html
(url, options)¶ Changed in version 2.1.0.
- Arguments
url (String) – 이동할 Page 위치값, URL Rule, 필수 값
options (Object) – 설정값 동일
Example:
페이지 명만 적용
M.page.tab.html("sample.html");
옵션 적용
M.page.tab.html("sample.html", { param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
화면 이동
M.page.tab.html('page-html-terminal.html');
화면 이동 (URL)
M.page.tab.html('http://m.naver.com');
화면 이동 (Animation)
M.pagpage.tabe.html('page-html-terminal.html', { 'animate': 'SLIDE_TOP' });
화면 이동 (Action)
M.page.tab.html('page-html-terminal.html', { 'animate': 'SLIDE_RIGHT', 'action': 'NO_HISTORY' });
화면 이동 (Orientation)
M.page.tab.html('page-html-terminal.html', { 'animate': 'SLIDE_TOP', 'orient': 'LAND', 'action': 'NO_HISTORY' });
화면 이동 (Parameter)
//허용 사이즈 : 1Mb (android bundle 허용 size) M.page.tab.html('page-html-terminal.html', { 'param': { 'a':'1', 'b':'2', 'c':'3' } });
하드웨어 가속 사용 (Parameter)
M.page.tab.html('page-html-terminal.html', { param: {"__HARDWARE_ACCELERATE_FOR_ACTIVITY__" : "Y"} });
Page Tab Remove (deprecated)¶
Page Tab Back (deprecated)¶
-
M.page.tab.
back
(options)¶ Changed in version 2.1.0.
- Arguments
options (Object) – 설정 값
options.param (String or Object) – Parameter 값
options.animation (Animation Type) – Animation Type, Default: ‘DEFAULT’
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
params = param
parameter = param
parameters = param
animate = animation
animationType = animation
Example:
전체 옵션 적용
M.page.tab.back({ param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }, animation: "DEFAULT" });
기본값 생략
M.page.tab.back({ param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
옵션 없이 실행
M.page.tab.back();
Native 로 이동¶
-
M.page.
activity
(options)¶ Changed in version 2.1.1.
- Arguments
options (Object) – 설정 값
options.className (String) – 이동할 Native Activity Class Name, Native Class Name Rule, 필수 값
options.param (String or Object) – Parameter 값
options.actionType (Action Type) – History Action Type, Default: ‘NEW_SCR’
options.animation (Animation Type) – Animation Type, Default: ‘DEFAULT’
options.orientation (Orientation Type) – Orientation Type, Default: ‘DEFAULT’
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
appClass = className
params = param
parameter = param
parameters = param
action = actionType
animate = animation
animationType = animation
orientationType = orientation
Example:
전체 옵션 적용
M.page.activity({ className: "SampleActivity", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }, actionType: "NEW_SCR", animation: "DEFAULT", orientation: "DEFAULT" });
기본값 생략
M.page.activity({ className: "SampleActivity", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
NO HISTORY 적용
M.page.activity({ className: "SampleActivity", actionType: "NO_HISTORY" });
-
M.page.
activity
(className, options)¶ Changed in version 2.1.0.
- Arguments
className (String) – 이동할 Native Activity Class Name, Native Class Name Rule, 필수 값
options (Object) – 설정값 동일
Example:
페이지 명만 적용
M.page.activity("SampleActivity");
옵션 포함
M.page.activity("SampleActivity", { param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } });
하드웨어 가속 사용 (Parameter)
M.page.activity("SampleActivity", { param: {"__HARDWARE_ACCELERATE_FOR_ACTIVITY__" : "Y"} });
-
M.page.
native
(options)¶ Deprecated since version 2.1.0.8.
M.page.activity 로 대체
Example:
native 화면 호출
M.page.native("SampleActivity");
Data API¶
Web <-> Native 간에 데이타 공유 가능
공유 가능한 데이타는 String
Type |
Description |
---|---|
Param |
|
Global |
|
Storage |
|
Parameters Data¶
-
M.data.
param
(key)¶ Changed in version 2.1.0.
- Arguments
key (String) – Parameter 키값
이전 화면에서 현재 화면으로 보낸 Parameter 를 가져온다.
현재 화면에 저장된 Parameter 를 가져온다.
Example:
// 페이지 호출 M.page.html({ path: "sample.html", param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" } }); // sample.html 에서 넘어온 Parameter 확인 M.data.param("poo");
-
M.data.
param
(key, value)¶ Changed in version 2.1.0.
- Arguments
key (String) – Parameter로 저장할 키값
value (*) – Parameter로 저장하는 값
화면에 Parameter 를 저장한다.
Example:
Parameter 변수 저장 (default)
M.data.param("goo", "6cdcbae015da6f882373107c90209267");
Parameter 변수 저장 (객체)
M.data.param({ 'koo': 'kov', 'boo': 'bov', 'foo': 'fov', 'arrayKey' : ['1', '2', '3'], 'objectkey' : {'key': 'value'} }); var val = M.data.param('foo'); M.tool.log(typeof val, val); alert( (typeof val) + ", " + JSON.stringify(val) );
-
M.data.
removeParam
(key)¶ Changed in version 2.1.0.
- Arguments
key (String) – 제거하려는 Parameter 키값
화면에서 Parameter 를 제거한다.
Example:
M.data.removeParam("poo");
-
M.data.
removeParam
()¶ Changed in version 2.1.0.
화면에서 Parameter 전체를 제거한다.
Example:
M.data.removeParam();
Global Data¶
-
M.data.
global
(key)¶ Changed in version 2.1.0.
- Arguments
key (String) – 전역 변수 키값
전역 변수를 가져온다.
Example:
M.data.global("goo");
-
M.data.
global
(key, value)¶ Changed in version 2.1.0.
- Arguments
key (String) – 전역 변수로 저장하려는 키값
value (*) – 전역 변수로 저장하는 값
전역 변수로 저장한다
Example:
전역 변수 저장 (default)
M.data.global("goo", "6cdcbae015da6f882373107c90209267");
전역 변수 저장 (객체)
M.data.global({ 'koo': 'kov', 'boo': 'bov', 'foo': 'fov', 'arrayKey' : ['1', '2', '3'], 'objectkey' : {'key': 'value'} }); var val = M.data.global('foo'); M.tool.log(typeof val, val); alert( (typeof val) + ", " + JSON.stringify(val) );
-
M.data.
global
()¶ Changed in version 2.1.0.
모든 전역 변수를 가져온다.
Example:
M.data.global();
-
M.data.
removeGlobal
(key)¶ Changed in version 2.1.0.
- Arguments
key (String) – 제거하려는 전역변수 키값
전역 변수를 제거한다.
Example:
M.data.removeGlobal("goo");
-
M.data.
removeGlobal
()¶ Changed in version 2.1.0.
전역 변수 전체를 제거한다.
제거할 수 없는 예약키(?)는 제외
Example:
M.data.removeGlobal();
Storage Data¶
-
M.data.
storage
(key)¶ Changed in version 2.1.0.
- Arguments
key (String) – 영속 변수 키값
영속 변수를 가져온다.
Example:
M.data.storage("soo");
-
M.data.
storage
(key, value)¶ Changed in version 2.1.0.
- Arguments
key (String) – 영속 변수로 저장하려는 키값
value (*) – 영속 변수로 저장하는 값
영속 변수로 저장한다.
Example:
영속 변수 저장 (default)
M.data.storage("goo", "6cdcbae015da6f882373107c90209267");
영속 변수 저장 (객체)
M.data.storage({ 'koo': 'kov', 'boo': 'bov', 'foo': 'fov', 'arrayKey' : ['1', '2', '3'], 'objectkey' : {'key': 'value'} }); var val = M.data.storage('foo'); M.tool.log(typeof val, val); alert( (typeof val) + ", " + JSON.stringify(val) );
-
M.data.
removeStorage
(key)¶ Changed in version 2.1.0.
- Arguments
key (String) – 제거하려는 영속변수 키값
영속 변수를 제거한다.
Example:
M.data.removeStorage("goo");
-
M.data.
removeStorage
()¶ Changed in version 2.1.0.
영속 변수 전체를 제거한다.
제거할 수 없는 예약키(?)는 제외
Example:
M.data.removeStorage();
Security API¶
암복호화 관련 함수를 제공
-
M.sec.
encrypt
(source)¶ Changed in version 2.1.1.
- Arguments
source (String) – 암호화할 Hex 문자열
- Return type
Object
문자열을 암호화하여 Hex String 형태로 반환한다.
Key
Type
Description
status
String
변환 성공 여부 (SUCCESS or FAIL)
result
String
암호화된 문자열
Example:
암호화
M.sec.encrypt( "Sample Text" ).result
-
M.sec.
decrypt
(source)¶ Changed in version 2.1.1.
- Arguments
source (String) – 암호화된 Hex 문자열
- Return type
Object
함수는 문자열을 복호화하여 반환한다.
Key
Type
Description
status
String
변환 성공 여부 (SUCCESS or FAIL)
result
String
복호화된 문자열
Example:
복호화
M.sec.decrypt( "1cf24b4ba06470d0809f9ac920e0ee17" ).result
암호화 / 복호화
var encrypt = M.sec.encrypt('Sample Text'); M.tool.log( encrypt ); alert( JSON.stringify(encrypt) ); var decrypt = M.sec.decrypt(encrypt.result); M.tool.log( decrypt ); alert( JSON.stringify(decrypt) );
Info API¶
시스템, 라이브러리, 디바이스 등의 정보를 제공
-
M.info.
version
()¶ Changed in version 2.1.1.
- Returns
설치된 API 의 버전 결과
- Return type
Object
core
String
Core Version
addon
Object
Addon Group
file
String
File Addon Version
locale
String
Locale Addon Version
media
String
Media Addon Version
net
String
Network Addon Version
net.ext
String
Network Extends Addon Version
pop
String
Popup Addon Version
zip
String
Zip Addon Version
plugin
Object
Plugin Group
beacon
String
Beacon Plugin Version
contact
String
Contact Plugin Version
location
String
Location Plugin Version
motion
String
Motion Plugin Version
prevention
String
Prevention Plugin Version
push
String
Push Plugin Version
qr
String
QR-Code Plugin Version
social
String
Social Plugin Version
viewer
String
Viewer Plugin Version
Example:
M.info.version();
-
M.info.
memory
()¶ Changed in version 2.1.0.
- Returns
메모리 사용정보
- Return type
Object
used
String
Used Memory Bytes
free
String
Free Memory Bytes
total
String
Total Memory Bytes
Example:
M.info.memory();
-
M.info.
device
()¶ Changed in version 2.1.1.
- Returns
Device 정보
- Return type
Object
Key
Type
Description
id
String
Device ID 값 (Deprecated 2.1.1)
uuid
String
Device UUID for PUSH
model
String
Device Model 명
type
String
phone: Phone, tablet: Tablet
os
Object
OS 정보
os.name
String
OS 명
os.version
String
OS Version
comm
Object
통신사 정보
comm.phone
String
단말기 전화번호, iOS 는 00000000000
comm.brand
String
통신사명
comm.mccmnc
String
통신사 MMC, MNC 정보
display
Object
디스플레이 정보
display.width
Object
화면 너비
display.height
Object
화면 높이
support
Object
디바이스 지원 정보
support.telephone
Boolean
통화 기능 지원여부
support.camera_front
Boolean
전방 카메라 지원여부
support.camera_back
Boolean
후방 카메라 지원여부
Example:
M.info.device();
-
M.info.
device
(keyPath)¶ Changed in version 2.1.2.
- Arguments
key (String) – 가져오려는 정보의 키값
- Returns
키에 대한 값
Example:
// 특정 키로 조회 if ( M.info.device("os.name") == "iPhone OS" || M.info.device("os.name") == "iOS" ) { alert( "이 운영체제는 iOS 입니다."); } if ( M.info.device("support.telephone") === false ) { alert( '통화 할 수 없는 단말기 입니다.' ); }
-
M.info.
stack
()¶ Changed in version 2.1.4.
- Returns
Stack 사용정보
- Return type
Array
Stack 별 정보
Key
Type
Description
key
String
Stack Key 값, API 버전 마다 값이 달라질 수 있음
action
String
Stack 의 ActionType (Action Type) 값
path
String
Stack을 생성한 리소스의 path 값
alias
String
Stack을 생성한 리소스의 alias 경로
source
String
Stack을 생성한 리소스의 절대 경로
tabs
Array
Stack 내 화면 정보
tabs[index].key
String
해당 화면의 Key 값, API 버전 마다 값이 달라질 수 있음
tabs[index].param
Object
해당 화면의 Parameters 값
tabs[index].orient
String
해당 화면의 Orientation (Orientation Type) 값
tabs[index].path
String
해당 화면의 리소스의 path 값
tabs[index].alias
String
해당 화면의 리소스의 alias 경로
tabs[index].source
String
해당 화면의 리소스의 절대 경로
Stack 정보 내에서 tabs 의 첫번째 배열값이 해당 스택의 현재 화면 정보
Example:
M.info.stack();
-
M.info.
stack
(index)¶ Changed in version 2.1.2.
- Arguments
index (Int) – 가져오려는 Stack Index
- Returns
Index 에 대한 Stack 정보
Example:
// 현재 화면 정보 console.log( M.info.stack(0).tabs[0] );
-
M.info.
app
()¶ Changed in version 2.1.5.
- Returns
Application 정보
- Return type
Object
Key
Type
Description
app
Object
ID, Name, Version, Build Info (Deprecated 2.1.5)
app.id
String
Application ID (Android:Package Name, iOS:Bundle Identifier)
app.name
String
Application Name
app.version
String
Application Version (Android: AndroidManifest.version, iOS: CFBundleShortVersionString)
app.build
String
Application Build Version (Android: AndroidManifest.code, iOS: CFBundleVersion)
library
Object
Library Info
library.license_id
String
License Application ID
library.release_date
String
Core Library 배포 날짜
library.release_version
String
Core Library Version
manifest
Object
Manifest 정보 (Manifest.xml 참고)
resource
Object
Resource 정보
resource.default_version
String
앱으로 배포된 리소스의 버전 정보
resource.current_version
String
마지막으로 업데이트 된 리소스 정보
last_update_date
Int
마지막으로 업데이트 시간(millisecond)
Example:
M.info.app();
-
M.info.
app
(keyPath)¶ Changed in version 2.1.4.
- Arguments
keyPath (String) – 가져오려는 정보의 Key값
- Returns
Key에 대한 값
Example:
if ( M.info.app("resource.default_version") == M.info.app("resource.current_version") ) { // 앱으로 배포된 버전과 리소스 버전 정보가 같은 경우 }
Apps API¶
앱간 연동을 위한 API 를 제공.
내장 브라우저 실행¶
-
M.apps.
browser
(url, encoding)¶ Changed in version 2.1.0.
- Arguments
url (String) – 기본 브라우저로 호출하기 위한 URL
encoding (String) – URL Encoding, EUC-KR과 UTF-8 지원
Encoding
Encoding
Description
EUC-KR
Variable-width encoding
UTF-8
Character encoding in Unicode
Example:
M.apps.browser("http://morpheus.co.kr/", "UTF-8");
앱 삭제¶
-
M.apps.
remove
(identifier)¶ Changed in version 2.1.0.
- Arguments
identifier (String) – 삭제할 앱의 패키지명
Android Only
Example:
//Android Only M.apps.remove("com.sample.app");
Warning
Android targetSDK 26 이상은, AndroidManifest.xml 에 아래와 같이 Permission 선언이 필요함.
<uses-permission android:name=”android.permission.REQUEST_DELETE_PACKAGES”/>
앱 정보 반환¶
-
M.apps.
info
(packageName)¶ Changed in version 2.1.0.
- Arguments
packageName (String) – 호출할 앱의 고유 scheme
- Returns
설치된 앱 정보 추출
- Return type
Object
installed
Boolean
Installed App
version
String
App Version (Android Only)
name
String
App Name (Android Only)
display_name
String
Display App Name (Android Only)
Example:
if ( M.navigator.os("android") ) { // Android 인 경우 if ( M.apps.info("com.domain.app"}).installed ) { M.apps.open("com.domain.app", {"poo": "f3ede926587776a8cd79fb2afe4e07b4"}); } else { M.apps.store("com.domain.app", {"poo": "f3ede926587776a8cd79fb2afe4e07b4"}); } } else if ( M.navigator.os("ios") ) { // iOS 인 경우 if ( M.apps.info("scheme://"}).installed ) { M.apps.open("scheme://", {"poo": "f3ede926587776a8cd79fb2afe4e07b4"}); } else { } }
Warning
targetSDK 30 이상 선언시 주의 사항
- InHouse 배포 시 (google play 배포시에는 reject 사유가 될 수 있음)
다른 앱 정보를 취득하기 위해, 아래와 같이 AndroidManifest.xml 에 퍼미션을 선언해야 한다. <uses-permission android:name=”android.permission.QUERY_ALL_PACKAGES”/>
- google play
다른 앱 정보를 취득하기 위해, 취득하고자 하는 앱을 등록하는 절차를 적용해야 한다.
참고 URL : https://developer.android.com/preview/privacy/package-visibility?hl=ko
- <manifest package=”com.example.game”>
- <queries>
<package android:name=”com.example.store” />
<package android:name=”com.example.services” />
</queries>
…
</manifest>
앱 설치 (In-House 배포용)¶
-
M.apps.
install
(url, name)¶ Changed in version 2.1.0.
- Arguments
url (String) – download url
name (String) – 앱 이름
Only Android
MNetwork 라이브러리 적용 필수
Example:
var appsName = 'SampleApp'; if (M.navigator.os('android')) { // android 인경우 var apkUrl = 'https://sample.co.kr/sampleApp.apk'; M.apps.install(apkUrl, appName) } else if (M.navigator.os('ios')) { // ios 인 경우 // https 프로토콜만 가능 var plistUrl = 'itms-services://?action=download-manifest&url=https://sample.co.kr/sampleApp.plist'; M.apps.browser(plistUrl); }
Warning
Android targetSDK 26 이상은, AndroidManifest.xml 에 아래와 같이 Permission 선언이 필요함.
<uses-permission android:name=”android.permission.REQUEST_INSTALL_PACKAGES”/>
다운로드 후 앱 설치 (In-House 배포용)¶
-
M.apps.
downloadAndInstall
(url, appName, option)¶ Changed in version 2.1.0.
- Arguments
url (String) – download url
appName (String) – 앱 이름
option (Object) – 네트워크 설정 값
option.indicator (Boolean) – 인디케이터 여부 (default: true)
option.timeout (Int) – 타임 아웃 (millisecond)
option.onprogress (Function) – 다운로드 진행 상태 콜백 함수
-
M.apps.
onprogress
(total, current, remaining, percentage)¶ - Arguments
total (String) – 다운로드 파일 사이즈
current (String) – 다운로드된 파일 사이즈
remaining (String) – 남은 파일 사이즈
percentage (String) – 진행률 퍼센트
Only Android
MNetwork 라이브러리 적용 필수
Example:
var appsName = 'SampleApp'; if (M.navigator.os('android')) { // android 인경우 var apkUrl = 'https://sample.co.kr/sampleApp.apk'; var option = { indicator: true, timeout: 30000, onprogress: function (total, cureent, remaining, percentage) { console.log(total, cureent, remaining, percentage); } }; M.apps.downloadAndInstall(apkUrl, appName, option) } else if (M.navigator.os('ios')) { // ios 인 경우 // https 프로토콜만 가능 var plistUrl = 'itms-services://?action=download-manifest&url=https://sample.co.kr/sampleApp.plist'; M.apps.browser(plistUrl); }
Warning
Android targetSDK 26 이상은, AndroidManifest.xml 에 아래와 같이 Permission 선언이 필요함.
<uses-permission android:name=”android.permission.REQUEST_INSTALL_PACKAGES”/>
앱 실행¶
-
M.apps.
open
(scheme, param)¶ Changed in version 2.1.0.
- Arguments
scheme (String) – 호출할 앱의 고유 scheme
param (String or Object) – Parameter 값
- Returns
앱 호출 성공 여부
- Return type
Boolean
OS 별 Scheme 값
OS
Description
Android
Package Name
iOS
URL Scheme
iOS 9.0 이상부터 Info.plist 에 LSApplicationQueriesSchemes 로 scheme 등록 필요
Example:
호출하는 앱에서 처리 내용
if ( M.navigator.os("android") ) { // Android 인 경우 M.apps.open("com.domain.app", {"poo": "f3ede926587776a8cd79fb2afe4e07b4"}); } else if ( M.navigator.os("ios") ) { // iOS 인 경우 M.apps.open("scheme://", {"poo": "f3ede926587776a8cd79fb2afe4e07b4"}); }
호출되는 앱에서 처리 내용
//Launcher Activity에서 아래와 같이 처리한다. (기본 : Startup.java) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //////////////////////////////////////////////////////////////////////////////// // - 중요 - // 최초 시작 Activity에 아래의 코드를 넣어야 한다. commLibHandle.processAppInit(this); //////////////////////////////////////////////////////////////////////////////// JSONObject jsondata; try { String param = getIntent().getStringExtra("param"); jsondata = new JSONObject(param); String poo_data = jsondata.has("poo") ? jsondata.getString("poo") : ""; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
스토어 열기¶
-
M.apps.
store
(identifier)¶ Changed in version 2.1.0.
- Arguments
identifier (String) – Store 에서의 앱 고유값
Identifier in AppStore
OS
Identifier
Android
Package Name
iOS
AppStore App ID
Example:
앱 지정하여, 스토어 열기
if ( M.navigator.os("android") ) { // Android 인 경우 M.apps.store("com.uracle.wellness"}); // open https://itunes.apple.com/kr/app/id1049605425?mt=8 } else if ( M.navigator.os("ios") ) { // iOS 인 경우 M.apps.store("1049605425"); // open https://play.google.com/store/apps/details?id=com.uracle.wellness }
Store 열기
M.apps.store();
System API¶
전화걸기, SMS, 진동등 시스템 기능들을 제공.
전화 걸기
-
M.sys.
call
(number)¶ Changed in version 2.1.1.
- Arguments
number (String) – 전화번호
네이티브 전화 어플을 구동시킨다.
Example:
구분자
M.sys.call( '010-1234-5678' )
숫자
M.sys.call( '01012345678' )
App 종료
-
M.sys.
exit
()¶ Changed in version 2.1.1.
앱을 종료한다.
Example:
M.sys.exit()
Camera flash 호출
-
M.sys.
flash
(status)¶ Changed in version 2.1.1.
- Arguments
status (String) – 카메라 플래시 상태 변경 (ON, OFF)
카메라 플래시의 상태를 변경한다.
Example:
호출 (ON)
M.sys.flash( 'ON' )
호출 (OFF)
M.sys.flash( 'OFF' )
메일 발송
-
M.sys.
mail
(options)¶ Changed in version 2.1.1.
- Arguments
options (Object) – 설정값
options.to (Array) – 받는 사람 이메일 주소
options.cc (Array) – 참조 이메일 주소
options.bcc (Array) – 숨은참조 이메일 주소
options.subject (String) – 메일 제목
options.contents (String) – 메일 내용
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
content = contents
메일을 화면으로 이동한다.
Example:
M.sys.mail({ to: ['test1@test.com', 'test2@test.com'] });
M.sys.mail({ to: ['test1@test.com', 'test2@test.com'], subject: '제목' });
M.sys.mail({ to: ['test1@test.com', 'test2@test.com'], subject: '제목', content: '내용' });
M.sys.mail({ to: ['test1@test.com', 'test2@test.com'], cc: ['cc1@test.com', 'cc2@test.com'], bcc: ['bcc1@test.com', 'bcc2@test.com'], subject: '제목', content: '내용' });
sms 발송
-
M.sys.
sms
(options)¶ Changed in version 2.1.1.
- Arguments
options (Object) – 설정값
options.numbers (Array) – 수신 전화번호
options.message (Array) – SMS 내용
- Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들
target = numbers
content = message
contents = message
msg = message
SMS 전송 화면으로 이동한다.
Example:
M.sys.sms({ numbers: '010-123-4567, 010-987-6543' });
M.sys.sms({ target: ['010-123-4567', '0109876543'], content: '안녕하세요.' });
진동 발생
-
M.sys.
vibration
()¶ Changed in version 2.1.1.
네이티브 진동을 호출한다.
Example:
진동 호출
M.sys.vibration()
진동 호출 (time / ms)
M.sys.vibration(2000);
진동 호출 (3s)
M.sys.vibration('3s');
진동 호출 (3000ms)
M.sys.vibration('3000ms');
Camera Flash 상태 가져오기
-
M.sys.
flash
()¶ Changed in version 2.1.1.
- Return type
Object
Key
Type
Description
status
String 플래시의 상태 (ON, OFF)
카메라 플래시의 상태를 가져온다.
Android 5.0 이상 미지원
Example:
M.sys.flash()
Tool API¶
로그 등 유틸 API 를 제공
Log¶
아래와 같은 타입으로 로그 레벨을 설정 할 수 있다.
Log Level¶
Type |
Int |
Description |
---|---|---|
ERROR |
0 |
Error Level |
WARN |
1 |
Warning Level |
INFO |
2 |
Info Level |
DEBUG |
3 |
Debug Level |
VERBOSE |
4 |
Verbose Level |
-
M.tool.
log
(options)¶ Changed in version 2.1.0.
- Arguments
options (Object) – 설정 값
options.message (String) – Log Message, 필수 값
options.level (Log Level) – Log Level, Default: DEBUG
options.tag (String) – Log 분류를 위한 Tag 값, Default: WEB
Example:
전체 옵션 적용
M.tool.log({ message:"로그 메세지", level: "DEBUG", tag: "WEB" });
기본값 생략
M.tool.log({ message:"로그 메세지" });
Log 출력 (Object)
M.tool.log({ 'a': '1', 'b': '2', 'c': '3', 'd': 4, 'e': "asdfasdfas", 'f': false });
Log 출력 (Array)
M.tool.log(['a', 'b', 'c', 123, true, false, "\n"]);
Log 출력 (Multiple)
var arr = ['a', 'b', 'c'] var obj = { 'a':'1', 'b':'2', 'c':'3' }; M.tool.log('로그', arr, obj);
Log 출력 (Multiple + Setting)
var arr = ['a', 'b', 'c']; var obj = { 'a':'1', 'b':'2', 'c':'3' }; M.tool.log(obj, arr, '로그', { 'level': 2, 'tag': 'test' });
Log 출력 (Int)
M.tool.log(0);
-
M.tool.
log
(message)¶ Changed in version 2.1.0.
- Arguments
message (String) – Log Message, 필수 값
메세지만 보내는 경우 기본 옵션값으로 Log 전달
Example:
// 로그 메세지만 전달 M.tool.log( "로그 메세지" );
-
M.tool.
log
(level, tag, message[, ...])¶ Changed in version 2.1.0.
- Arguments
level (String) – Log Level, Default: DEBUG
tag (String) – Log 분류를 위한 Tag 값, Default: WEB
message (*) – Log Message
첫번째 파라미터 값이 Level 에 해당하는 값인 경우, Level, Tag, Message 순으로 인식
Example:
// Error Level + WEB tag + 메세지 순으로 전달 M.tool.log( "ERROR", "WEB", "오류 메세지" );
Native API 호출¶
ExtendWNInterface 에 만들어진 api 를 호출하기 위한 방법
Native API 동기방식
-
M.
execute
(api, param)¶ Changed in version 2.1.0.
- Arguments
api (String) – ExtendWNInterface 에 생성된 Native API 명칭
options (Object) – Native api에 전달될 설정 값
Example:
// phone number 호출 var result = M.execute("getPhoneNumber" ); // server 정보 전달 / 설정 ver serverInfo = { 'server':'127.0.0.1', 'port':'2103', 'serverName' : 'TEST' } var result = M.execute("setIpInfo", serverInfo );
Native API 비동기 방식 호출 : TYPE 1
callback 함수가 window에 선언된 함수일 경우 string으로 함수 이름 param 설정
-
M.
execute
(api, param, callback)¶ Changed in version 2.1.0.
- Arguments
api (String) – ExtendWNInterface 에 생성된 Native API 명칭
options (Object) – Native api에 전달될 설정 값
callback (String) – callback function
Example:
window.callbackFunc( result ){ console.log( result ); } M.execute("exName", options, "callbackFunc");
Native API 비동기 방식 호출 : TYPE 2
callback 함수가 익명함수이거나 window에 선언되어 있지 않을 경우 M.response.on함수를 이용, toString하여 param 설정
-
M.
execute
(api, param, callback)¶ Changed in version 2.1.0.
- Arguments
api (String) – ExtendWNInterface 에 생성된 Native API 명칭
options (Object) – Native api에 전달될 설정 값
callback (String) – callback function
Example:
var callback = M.response.on( function( result ) { console.log( result ); }).toString() M.execute("exName", options, callback);