13.Phone

Edit

13.1Phone 소개

Phone은 모바일 장치의 전화걸기 기능을 수행하는 오브젝트입니다.

13.2전화걸기

Phone 오브젝트의 makeCall 메소드는 인수로 전달된 전화번호로 전화를 걸어주는 기능을 합니다. 전화 걸기시 자동 다이얼링 옵션을 설정할 수 있는데 옵션 설정에 따라 전화 걸기 화면만 오픈할지 전화 걸기까지 진행할지 선택 할 수 있습니다. 자동 다이얼링 옵션을 설정하지 않으면 전화 번호가 설정된 전화 걸기 화면까지만 진행되므로 통화 버튼을 사용자가 직접 터치해야 합니다.

13.2.1예제

전화 번호를 입력 후 Call 버튼을 터치하면 전화가 걸립니다.

유심이 없거나 전화 기능이 되지 않는 장치에서는 모바일 장치의 오류 처리 방식을 따릅니다. 따라서 전화걸기 화면으로 넘어가지 않거나 경고 메시지 출력 혹은 일시적으로 멈춘것처럼 느리게 처리 될 수 있습니다.

그림 13-1Screenshot_20180718-181943

13.2.2예제에서 사용한 핵심 기능

Phone > makeCall 메소드

인수로 전달된 전화 번호로 전화를 거는 메소드입니다. 인수를 두 개 받을 수 있는데 첫 번째 인수는 전화번호로 반드시 입력해야 합니다. 두 번째 인수는 자동 다이얼링 기능을 설정하는 옵션입니다. 기본 값은 'false'로 모바일 장치의 전화 연결 화면까지만 진행되며 'true'로 설정하면 해당 번호로 바로 전화를 겁니다.

13.2.3예제 구현 방법

1

화면 구성하기

Phone 오브젝트를 추가합니다. 추가된 Phone 오브젝트는 Invisible Object 창에서 확인할 수 있습니다.

화면을 구성하기 위한 Static, Button 컴포넌트와 전화 번호를 입력받을 Edit 컴포넌트를 예제의 그림과 같이 적절히 배치합니다.

화면 구성을 위해 사용한 컴포넌트 및 오브젝트는 다음과 같습니다.

컴포넌트/오브젝트

ID

Phone

Phone00

Edit

edt_phonenumber

Button

btn_call

Static

stt_result

ImageViewer

ImageViewer00

2

Call 버튼 이벤트 함수 작성하기

Call 버튼의 onclick 이벤트를 다음과 같이 작성합니다. 전화번호가 입력되지 않았는지 확인 후 makeCall 메소드를 호출하여 전화를 겁니다.

this.btn_call_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
    var strPhoneNumber = this.edt_phonenumber.value;
    
    if(nexacro._isNull(strPhoneNumber) || strPhoneNumber == "")
    {
        this.edt_phonenumber.setFocus();
    }
    else
    {
        if(this.Phone00.makeCall(strPhoneNumber, true))
        {
            this.stt_result.set_text("makeCall() succeed.");
        }
        else
        {
            this.stt_result.set_text("makeCall() failed.");
        }
    }
};

3

Edit 컴포넌트 이벤트 함수 작성하기

Edit 컴포넌트의 onkeydown 이벤트 함수를 다음과 같이 작성합니다. 가상 키보드의 엔터키 입력을 처리합니다.

this.edt_phonenumber_onkeydown = function(obj:nexacro.Edit,e:nexacro.KeyEventInfo)
{
    if(e.keycode == "13")
    {            
        this.btn_call_onclick();
        this.btn_call.setFocus();
    }    
};

4

ImageViewer 컴포넌트 이벤트 함수 작성하기

ImageViewer 컴포넌트의 onclick 이벤트 함수를 작성합니다. 전화 번호 입력란의 X 버튼을 터치하면 Edit 컴포넌트에 입력한 전화번호를 삭제합니다.

this.ImageViewer00_onclick = function(obj:nexacro.ImageViewer,e:nexacro.ClickEventInfo)
{
    this.edt_phonenumber.set_value("");
    this.edt_phonenumber.setFocus();
};

5

모바일 장치에서 확인하기

전화번호를 입력하고 Call 버튼을 터치하여 전화가 걸리는지 확인합니다.

그림 13-2sample_phone_01_02