Core Library 를 MCore 라고 부른다.
MCore Framework 에 대한 필수 API 를 정의
Changed in version 2.1.0
Arguments
Arguments
Example:
M.onReady( function(e) {
// TODO : ready event handle code here
});
Changed in version 2.1.0
Arguments
Arguments
Example:
M.onHide( function(e) {
// TODO : hide event handle code here
});
Changed in version 2.1.0
Arguments
Arguments
Example:
M.onRestore( function(e) {
// TODO : restore event handle code here
});
Changed in version 2.1.0
Arguments
Arguments
Example:
M.onBack( function(e) {
// TODO : back event handle code here (android only)
});
Changed in version 2.1.0
Arguments
Arguments
Example:
M.onPause( function(e) {
// TODO : pause event handle code here
});
Changed in version 2.1.0
Arguments
Arguments
Example:
M.onResume( function(e) {
// TODO : resume event handle code here
});
Changed in version 2.1.0
Arguments
Arguments
Example:
M.onDestroy( function(e) {
// TODO : destroy event handle code here
});
안드로이드 | 모피어스 | 설명 |
---|---|---|
onCreate() | M.onReady() | 화면생성시 |
onResume() | M.onResume() | Background 상태에서 Foreground 상태로 변경시(홈키 -> 앱화면 전환시) |
onPause() | M.onPause() | Background 상태로 변경시 (홈키를 눌렀을때) |
onStop() | M.onHide() | A화면에서 B화면으로 전환하는 시점 |
onDestroy() | M.onDestroy() | 현재 화면이 종료될 때 (Activity finish) |
onRestart() | M.onRestore() | B 화면에서 History Back 을 통해, A 화면으로 전환시 (이때 A화면은 finish 상태가 아니어야 함) |
iOS | 모피어스 | 설명 |
---|---|---|
applicationWillEnterForeground | M.onResume() | Background 상태에서 Foreground 상태로 변경시(홈 -> 앱화면 전환시) |
applicationDidEnterBackground | M.onPause() | Background 상태로 변경시 (홈으로 이동시) |
viewDidLoad | M.onReady() | 화면생성시 |
viewDidAppear | M.onRestore() | B 화면에서 History Back 을 통해, A 화면으로 전환시 (이때 A화면은 Dealloc 상태가 아니어야 함) |
viewWillDisappear | M.onHide() | A화면에서 B화면으로 전환하는 시점 |
deinit | M.onDestroy() | 현재 화면이 종료될 때 (ViewController finish) |
Event Flow
Return Types
Example:
console.log(M.navigator.os());
Return Types
Example:
console.log(M.navigator.os("Android"));
console.log(M.navigator.os("ios"));
Return Types
Example:
{
os: "iOS",
version: "9.2.1",
tablet: false,
mobile: true
}
Return Types
Example:
if ( M.navigator.device("ios") == true ) {
// iOS인 경우
if ( M.navigator.device("ios", "9") == true ) {
// iOS 9 버전인 경우
}
}
웹뷰 브라우저 정보
Return Types
Example:
var result = M.navigator.browser();
alert(JSON.stringify(result));
웹뷰 브라우저 정보
Return Types
console.log(M.navigator.browser("chrome","112.0.5615.136"));
//true or false
화면 이동에 대한 API 를 제공
Type | Int | Description |
---|---|---|
NEW_SCR | 0 | 대상이 되는 화면을 추가 |
NO_HISTORY | 1 | 대상이 되는 화면을 Stack 에 포함하지 않음 |
CLEAR_TOP | 2 | 대상이 되는 이전 화면으로 이동. 이동시 현재 화면 사이의 모든 화면은 제거됨. |
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 | 모든 방향으로 허용 |
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 | 원본 화면은 고정되어 있고 대상 화면만 아래쪽으로 이동되는 슬라이드 효과 |
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 ) |
New in version 2.1.5
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 미만인 경우 처리
}
New in version 2.1.1
Arguments
Example:
// 0.5초 후 페이지 이동을 실행
M.page.defer(true, 500);
// 지연 실행기능을 끔
M.page.defer(false);
Changed in version 2.1.2
Arguments
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" }
});
M.page.html({
url: "skip.html",
actionType: "NO_HISTORY"
});
Changed in version 2.1.0
Arguments
Example:
M.page.html("sample.html");
M.page.html("sample.html", {
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }
});
M.page.html('page-html-terminal.html');
M.page.html('https://m.naver.com');
M.page.html('https://m.naver.com', {
param: {
foo: 'bar',
},
removeQuery : true
});
// https://m.namver.com
M.page.html('https://m.naver.com', {
param: {
foo: 'bar',
},
});
// https://m.namver.com?foo=bar
M.page.html('page-html-terminal.html', {
'animate': 'SLIDE_TOP'
});
M.page.html('page-html-terminal.html', {
'animate': 'SLIDE_RIGHT',
'action': 'NO_HISTORY'
});
M.page.html('page-html-terminal.html', {
'animate': 'SLIDE_TOP',
'orient': 'LAND',
'action': 'NO_HISTORY'
});
//허용 사이즈 : 1Mb (android bundle 허용 size)
M.page.html('page-html-terminal.html', {
'param': {
'a':'1',
'b':'2',
'c':'3'
}
});
M.page.html('page-html-terminal.html', {
param: {"__HARDWARE_ACCELERATE_FOR_ACTIVITY__" : "Y"}
});
Changed in version 2.1.0
Arguments
Example:
M.page.back({
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" },
animation: "DEFAULT"
});
M.page.back({
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }
});
M.page.back();
Changed in version 2.1.0
Arguments
Example:
M.page.remove("sample.html");
var pagelist = M.info.stack();
M.page.remove(pagelist[2].key);
Changed in version 2.1.0
Arguments
Changed in version 2.1.0
Arguments
Example:
M.page.replace("sample.html");
M.page.replace({
url : "sample.html",
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }
});
M.page.replace('http://m.naver.com');
Changed in version 2.1.2
Arguments
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" }
});
M.page.tab.html({
url: "skip.html",
actionType: "NO_HISTORY"
});
Changed in version 2.1.0
Arguments
Example:
M.page.tab.html("sample.html");
M.page.tab.html("sample.html", {
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }
});
M.page.tab.html('page-html-terminal.html');
M.page.tab.html('http://m.naver.com');
M.pagpage.tabe.html('page-html-terminal.html', {
'animate': 'SLIDE_TOP'
});
M.page.tab.html('page-html-terminal.html', {
'animate': 'SLIDE_RIGHT',
'action': 'NO_HISTORY'
});
M.page.tab.html('page-html-terminal.html', {
'animate': 'SLIDE_TOP',
'orient': 'LAND',
'action': 'NO_HISTORY'
});
//허용 사이즈 : 1Mb (android bundle 허용 size)
M.page.tab.html('page-html-terminal.html', {
'param': {
'a':'1',
'b':'2',
'c':'3'
}
});
M.page.tab.html('page-html-terminal.html', {
param: {"__HARDWARE_ACCELERATE_FOR_ACTIVITY__" : "Y"}
});
Changed in version 2.1.0
Arguments
Example:
M.page.tab.remove("sample.html");
Changed in version 2.1.0
Arguments
Example:
M.page.tab.back({
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" },
animation: "DEFAULT"
});
M.page.tab.back({
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }
});
M.page.tab.back();
Changed in version 2.1.1
Arguments
Example:
M.page.activity({
className: "SampleActivity",
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" },
actionType: "NEW_SCR",
animation: "DEFAULT",
orientation: "DEFAULT"
});
M.page.activity({
className: "SampleActivity",
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }
});
M.page.activity({
className: "SampleActivity",
actionType: "NO_HISTORY"
});
Changed in version 2.1.0
Arguments
Example:
M.page.activity("SampleActivity");
M.page.activity("SampleActivity", {
param: { "poo": "f3ede926587776a8cd79fb2afe4e07b4" }
});
M.page.activity("SampleActivity", {
param: {"__HARDWARE_ACCELERATE_FOR_ACTIVITY__" : "Y"}
});
2.1.0.8
Example:
M.page.native("SampleActivity");
Type | Description |
---|---|
Param |
|
Global |
|
Storage |
|
Changed in version 2.1.0
Arguments
Example:
// 페이지 호출
M.page.html({
url: "sample.html",
param: {
"poo": "f3ede926587776a8cd79fb2afe4e07b4"
}
});
// sample.html 에서 넘어온 Parameter 확인
M.data.param("poo");
Changed in version 2.1.0
Arguments
Example:
M.data.param("goo", "6cdcbae015da6f882373107c90209267");
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) );
Changed in version 2.1.0
Arguments
Example:
M.data.removeParam("poo");
Changed in version 2.1.0
Example:
M.data.removeParam();
Changed in version 2.1.0
Arguments
Example:
M.data.global("goo");
Changed in version 2.1.0
Arguments
Example:
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) );
Changed in version 2.1.0
Arguments
Example:
M.data.removeGlobal("goo");
Changed in version 2.1.0
Example:
M.data.removeGlobal();
Changed in version 2.1.0
Arguments
Example:
M.data.storage("soo");
Changed in version 2.1.0
Arguments
Example:
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) );
Changed in version 2.1.0
Arguments
Example:
M.data.removeStorage("goo");
Changed in version 2.1.0
Example:
M.data.removeStorage();
Changed in version 2.1.1
Arguments
Return Types
Key | Type | Description |
---|---|---|
status | String | 변환 성공 여부 (SUCCESS or FAIL) |
result | String | 암호화된 문자열 |
Example:
M.sec.encrypt( "Sample Text" ).result
Changed in version 2.1.1
Arguments
Return Types
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) );
시스템, 라이브러리, 디바이스 등의 정보를 제공
Changed in version 2.1.1
Returns
Return Types
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();
Changed in version 2.1.0
Returns
Return Types
used | String | Used Memory Bytes |
free | String | Free Memory Bytes |
total | String | Total Memory Bytes |
Example:
M.info.memory();
Changed in version 2.1.1
Returns
Return Types
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.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();
Changed in version 2.1.2
Arguments
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( '통화 할 수 없는 단말기 입니다.' );
}
Changed in version 2.1.4
Returns
Return Types
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 | 해당 화면의 리소스의 절대 경로 |
Example:
M.info.stack();
Changed in version 2.1.2
Arguments
Returns
Example:
// 현재 화면 정보
console.log( M.info.stack(0).tabs[0] );
Changed in version 2.1.5
Returns
Return Types
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();
Changed in version 2.1.4
Arguments
Returns
Example:
if ( M.info.app("resource.default_version") == M.info.app("resource.current_version") ) {
// 앱으로 배포된 버전과 리소스 버전 정보가 같은 경우
}
Changed in version 2.1.0
Arguments
Encoding | Description |
---|---|
EUC-KR | Variable-width encoding |
UTF-8 | Character encoding in Unicode |
Example:
M.apps.browser("http://morpheus.co.kr/", "UTF-8");
Changed in version 2.1.0
Arguments
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"/>
Changed in version 2.1.0
Arguments
Returns
Return Types
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>
Changed in version 2.1.0
Arguments
Example:
var appName = '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"/>
Changed in version 2.1.0
Arguments
Arguments
Example:
var appName = '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) {
console.log(total, cureent);
}
};
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"/>
Changed in version 2.1.0
Arguments
Returns
Return Types
OS | Description |
---|---|
Android | Package Name |
iOS | URL 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();
}
}
Changed in version 2.1.0
Arguments
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
}
M.apps.store();
Changed in version 2.1.1
Arguments
Example:
M.sys.call( '010-1234-5678' )
M.sys.call( '01012345678' )
Changed in version 2.1.1
Arguments
Example:
M.sys.flash( 'ON' )
M.sys.flash( 'OFF' )
Changed in version 2.1.1
Arguments
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: '내용'
});
Changed in version 2.1.1
Arguments
Example:
M.sys.sms({
numbers: '010-123-4567, 010-987-6543'
});
M.sys.sms({
target: ['010-123-4567', '0109876543'],
content: '안녕하세요.'
});
Changed in version 2.1.1
Example:
M.sys.vibration()
M.sys.vibration(2000);
M.sys.vibration('3s');
M.sys.vibration('3000ms');
Changed in version 2.1.1
Return Types
Key | Type | Description |
---|---|---|
status | String | 플래시의 상태 (ON, OFF) |
Example:
M.sys.flash()
로그 등 유틸 API 를 제공
Type | Int | Description |
---|---|---|
ERROR | 0 | Error Level |
WARN | 1 | Warning Level |
INFO | 2 | Info Level |
DEBUG | 3 | Debug Level |
VERBOSE | 4 | Verbose Level |
Changed in version 2.1.0
Arguments
Example:
M.tool.log({
message:"로그 메세지",
level: "DEBUG",
tag: "WEB"
});
M.tool.log({
message:"로그 메세지"
});
M.tool.log({
'a': '1',
'b': '2',
'c': '3',
'd': 4,
'e': "asdfasdfas",
'f': false
});
M.tool.log(['a', 'b', 'c', 123, true, false, "\n"]);
var arr = ['a', 'b', 'c']
var obj = {
'a':'1',
'b':'2',
'c':'3'
};
M.tool.log('로그', arr, obj);
var arr = ['a', 'b', 'c'];
var obj = {
'a':'1',
'b':'2',
'c':'3'
};
M.tool.log(obj, arr, '로그', {
'level': 2,
'tag': 'test'
});
M.tool.log(0);
Changed in version 2.1.0
Arguments
Example:
// 로그 메세지만 전달
M.tool.log( "로그 메세지" );
Changed in version 2.1.0
Arguments
Example:
// Error Level + WEB tag + 메세지 순으로 전달
M.tool.log( "ERROR", "WEB", "오류 메세지" );
ExtendWNInterface 에 만들어진 api 를 호출하기 위한 방법
Changed in version 2.1.0
Arguments
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 );
callback 함수가 window에 선언된 함수일 경우 string으로 함수 이름 param 설정
Changed in version 2.1.0
Arguments
Example:
window.callbackFunc( result ){
console.log( result );
}
M.execute("exName", options, "callbackFunc");
callback 함수가 익명함수이거나 window에 선언되어 있지 않을 경우 M.response.on함수를 이용, toString하여 param 설정
Changed in version 2.1.0
Arguments
Example:
var callback = M.response.on( function( result ) {
console.log( result );
}).toString()
M.execute("exName", options, callback);