부록 E.안드로이드 네이티브 인터페이스

Edit

넥사크로플랫폼 라이브러리에서 지원하는 안드로이드 네이티브 인터페이스 중 주요 항목을 설명합니다. 동작하는 시점에 따라 구동 시점에 사용하는 인터페이스와 앱 실행 중 사용하는 인터페이스로 구분할 수 있습니다.

사용 시점

안드로이드 네이티브 인터페이스

앱 구동 시

com.nexacro.NexacroUpdatorActivity

com.nexacro.NexacroResourceManager

앱 실행 시

com.nexacro.NexacroActivity

com.nexacro.NexacroEventHandler

E.1com.nexacro.NexacroUpdatorActivity

E.1.1setBootstrapURL

setBootstrapURL(url)

인자

설명

url

start_android.json 파일을 배치한 경로의 URL 문자열 (파일명 포함)

부트스트랩 파일(start_android.json)을 배치한 서버 URL 문자열값을 지정합니다. 부트스트랩 파일에는 프로젝트 구동에 필요한 정보가 담겨져 있습니다. nexacroActivity 구동 시 해당 정보를 전달합니다

E.1.2setProjectURL

setProjectURL(url)

인자

설명

url

제너레이트한 소스 파일들을 배치한 경로의 URL 문자열

경로를 표시하는 URL 문자열 끝에 '/'를 붙여주어야 합니다. nexacroActivity 구동 시 해당 정보를 전달합니다

E.1.3setStartupClass

setStartupClass(startupClass)

인자

설명

startupClass

업데이트 완료 후 실행할 Activity

기본값은 nexacroActivity입니다. 기본값을 사용하는 경우에는 메소드를 따로 호출하지 않습니다.

E.2com.nexacro.NexacroResourceManager

E.2.1setDirect

setDirect(updatetype)

인자

설명

updatetype

Update Type 옵션을 boolean 값으로 지정

true: "Server"

false: "Update(Local+Server)" or "Local"

넥사크로 스튜디오 메뉴 [Deploy > Packing(Archive&Update)] 실행 시 설정한 Update Type에 따라 값을 설정합니다. 아래와 같이 NexacroUpdatorActivity의 onCreate 에서 설정합니다.

protected void onCreate(Bundle savedInstanceState) {
    NexacroResourceManager.createInstance(this);
    NexacroResourceManager.getInstance().setDirect(false);

E.2.2setScreenid

setScreenid(screenid)

인자

설명

screenid

레이아웃으로 적용할 Screen ID

Screen ID는 디바이스의 운영체제, 크기, 종류에 따라 자동 선택되는데, 특정 Screen ID를 지정하려는 경우 사용하는 메소드입니다. NexacroUpdatorActivity의 onCreate 에서 설정합니다.

E.2.3setContentMode

setContentMode(mode)

인자

설명

mode

컨텐츠 모드 설정 여부

true 값 설정 시 컨텐츠 모드로 동작

콘텐츠 모드로 동작할지 여부를 설정합니다. setFDL 메소드를 사용하려면 true로 값을 설정해야 합니다.

E.2.4setFDL

setFDL(fdlURL)

인자

설명

fdlURL

form URL 설정

"FrameBase::Form_Work.xfdl" 와 같은 식으로 TypeDefinition의 Services 경로 지정

실행할 Form URL을 설정합니다.

E.2.5setKeyName

setKeyName(keyName)

인자

설명

keyName

Environment key 속성을 설정

E.3com.nexacro.NexacroActivity

E.3.1callScript

callScript(method)

인자

설명

method

자바스크립트 넥사크로플랫폼 라이브러리에 포함된 Application 오브젝트의 메소드를 문자열로 지정합니다.

인자로 전달된 문자열은 자바스크립트에서 eval 함수로 처리되어 실행됩니다. callScript 메소드가 실행될 때 자바스크립트에서는 아래와 같은 형식으로 변환됩니다.

NexacroActivity.getInstance().callScript("fn_test('Hello nexacro!')"); // Java
eval("nexacro.getAppication().fn_test('Hello nexacro!');"); // JavaScript

E.3.2createNexacroApplication

createNexacroApplication([key])

인자

설명

key

NexacroApplication 생성 시 이름(key)를 설정합니다.

값을 설정하지 않으면 내부 라이브러리에서 임의로 지정합니다.

E.3.3getNexacroApplication

getNexacroApplication()

NexacroActivity가 소유한 Application을 반환합니다.

E.4com.nexacro.NexacroEventHandler

E.4.1onUserNotify

onUserNotify(int nNotifyID, String strMessage)

method

설명

nNotifyID

넥사크로플랫폼 userNotify 메소드에서 전달한 ID값

strMessage

처리할 문자열

callScript 메소드가 안드로이드에서 넥사크로플랫폼 스크립트로 값을 전달하는 것이라면 onUserNotify는 넥사크로플랫폼 스크립트에서 안드로이드로 값을 전달합니다. 넥사크로플랫폼 userNotify 메소드 실행 시 안드로이드에서 아래와 같은 형식으로 값을 받아 처리합니다.

nexacro.getEnvironment().userNofity(100, "HelloWorld"); // JavaScript
public class UserNotify implements NexacroEventHandler {
    public UserNotify() {
        if(NexacroActivity.getInstance() != null)
            NexacroActivity.getInstance().setNexacroEventListener(this);
    }
    
    @Override
    public void onUserNotify(int nNotifyID, String strMessage) {
        Log.d("UserNotify", "onUserNotify nNotifyID : " + nNotifyID + " strMessage : " + strMessage);
    }
} // Java