본문 바로가기
앱인벤터/앱인벤터 컴포넌트

앱인벤터 문자메시지 컴포넌트

by flycoding 2022. 5. 21.
반응형

앱인벤터 문자메시지 컴포넌트

앱인벤터의 컴포넌트들을 이해와 실제 예제를 통해 실습을 통해 모바일 앱 개발에 활용도를 높이고자 한다

메시지보내기 메소드가 호출될 때 문자메시지는 문자메시지 컴포넌트의 속성값에 전화번호와 메시지를 전달하여 스마트폰의 기본 문자메시지 앱가 구동되어 전송하도록 한다. 다이렉트문자메시지 보내기에 의해 사용자 상호작용이 없이 텍스트 메시지를 보낼 수 있다. 그러나 이는 텍스트 문자 앱의 위험한 권한 허가가 추가되어야 한다.

문자메시지 컴포넌트의 속성값 중에 데이터수신활성화 값이 1이면, 메시지들은 수신이 안될 것이다. 

문자메시지 컴포넌트의 속성값 중에 데이터수신활성화 값이 2이면, 문자메시지 컴포넌트를 포함하는 앱이 구동중일 때, 메시지들은 수신이 될 것이다. 

문자메시지 컴포넌트의 속성값 중에 데이터수신활성화 값이 3이면, 문자메시지 컴포넌트를 포함하는 앱이 구동중일 때, 그리고 앱인 구동이 되지 않을 때에는 메시지가 큐에 저장되고 사용자에게 알림으로 표시하며, 메시지들은 수신이 될 것이다. 

하나의 메시지가 도착했을 때, 메시지수진 이벤트는 호출이 되고, 발신전화번호와 메시지가 제공된다.

앱인 백그라운드 상태에 있을 때에, 혹은 앱이 설치되어 있지만 앱이 실행중이 아닐 때에도, 문지메시지 컴포넌트를 포함하는 어떤 앱이 메시지를 수신할 것이다. 문자메시지 컴포넌트를 포함하는 앱이 실행중이 아닐 때에, 스마트폰이 문자메시지를 수신한다면, 스마트폰은 알림바에 문자메시지 수신 알림을 보여줄 것이다. 알림을 선택하면 앱은 문자메시지를 가져올 것이다. 앱 개발자처럼 스마트폰이 텍스트 메시지를 무시하기 위해 데이터문자활성화 속성값을 제어하기 위한 권한을 원할 수도 있다.

만일 구글보이스활성화 속성값이 참이면, 메시지는 구글 보이스를 사용하여 와이파이를 통해 보내질 수 있다. 이 선택사항은 사용자가 구글보이스활성화 계정을 가지고 있고 스마트폰 상에 mobile Voice App이 설치되어 있어야만 사용가능하다. 구그볼이스선택사항은 안드로이드 2.0 혹은 그 이상의 버전에서만 지원이 된다. 불행하게도 구글 보이스 앱이 변경되어서 구글 보이스가 더 이상 동작하지 않는다.

전화번호를 정의하기 위해서 숫자만 입력한다. 대쉬, 점, 괄호는 무시하고 공백은 포함하지 않는다.

앱에서 전화번호를 정의하기 위한 또 다른 방법은 전화번호선택버튼 컴포넌트를 사용하여 전화번호를 정의할 수 있다.

 

공유 컴포넌트

팔레트의 소셜 부분에서 공유 컴포넌트는 보이지 않는 컴포넌트로, 뷰어에 drag&drop하면 화면에는 아무것도 표시되지 않는다.  공유 컴포넌트, 텍스트박스 컴포넌트 및 버튼 컴포넌트 2개, 카메라 컴포넌트와 수평배치 1개의 컴포넌트를 활용하여 글과 사진을 공유하는 앱을 만들어보자.

팔레트

공유 컴포넌트는 '소셜'에 있다. 공유 컴포넌트를 오른쪽 뷰어에 Drag&Drop하면 추가된다.

 

뷰어

컴포넌트들을 추가했을 때, 기본적으로 사각형이 뷰어 화면에 출력된다.

뷰어에는 보이는 않는 컴포넌트로 공유와 카메라 컴포넌트 그리고 버튼과 텍스트박스 컴포넌트 및 수평배치 컴포넌트 1개로 구성되어 있다.

 

컴포넌트

 

컴포넌트에는 Screen1아래에 공유, 카메라, 버튼, 텍스트박스 및 수평배치 컴포넌트를 활용한다.

- 공유 컴포넌트

- 카메라 컴포넌트

- 버튼 컴포넌트 2개

- 텍스트박스 컴포넌트

- 수평배치 1개 컴포넌트

 

앱인벤터 공유 컴포넌트 활용 예제

 

문자메시지 컴포넌트 속성값

앱인벤터 문자메시지 컴포넌트 속성값에는 구글보이스활성화여부, 메시지, 전화번호, 데이터수신활성화 속성값이 있다.

 

구글보이스활성화여부 속성값은 만약 값이 참이면, 문자메시지는 구글보이스를 사용하여 와이파이를 통해 메시지를 송신을 시도할 것이다.

메시지 속성값은 '메시지보내기' 호출 블럭을 통해 송신되는 메시지를 지정하는 값이다. 표준 SMS 메시지의 최대 길이는 일반적으로 170이다. 발음구별기호(diarcritical marks)를 사용하는 언어인 경우에는 메시지 길이가 더 적을 수도 있다.

전화번호 속성값은 '메시지 보내기' 호출 블럭이 호출되었을때 전송되는 전화번호 값이다. 이 번호는 숫자로 구성된 문자열이다. 대쉬(dashes), 도트(dots, 점), 괄호등이 포함될 수 있지만 무시될 것이다. 그리고 공백은 포함되지 않는다.

데이터수신활성화 속성값은 만약 1(OFF)이면 메시지는 수신되지 않는다. 만약 값이 2(FOREGROUND)나 3(ALWAYS)는 메시지는 수신될 것이다. 값이 2인 경우에는, 이 앱이 구동중이 아닐 경우에는 메시지가 버려지게 될 것이다. 3인 경우에는 앱이 구동중이 아닐지라도 메시지를 수신할 수 있다. 또한 알림도 보여질 것이다. 알림을 선택하면 앱이 구동이 되고 메시지를 확인할 수 있게 된다.

 

앱인벤터 문자메시지 컴포넌트 속성값

문자메시지 컴포넌트 이벤트 블럭들

문제메시지 컴포넌트 이벤트 블럭에는 '메시지받았을때' 블럭이 있다.

 

. 문제메시지 컴포넌트 메시지를받았을때 블럭

스마트폰이 누군가로부터 메시지를 받았을 때 호출되는 이벤트 블럭이다.

인자값으로는 번호, 메시지텍스트가 있다. 번호는 문자를 보낸 상대방의 발신 전화번호이며 '메시지텍스트'는 보낸 문자 내용이 담겨져 있다.

 

앱인벤터 문자메시지 컴포넌트 메시지를받았을때 블럭

 

문자메시지 컴포넌트 호출 블럭들

문자메시지 컴포넌트 호출 블럭에는 메시지보내기, SendMessageDirect 블럭이 있다.

 

. 문자메시지 컴포넌트 메시지보내기 블럭

전화번호와 메시지를 사전에 미리 덧붙여놓은 후에, '메시지보내기' 블럭이 호출되면 스마트폰의 기본 문자메시지 앱이 구동이 되며 메시지가 송신된다.

 

앱인벤터 문자메시지 컴포넌트 메시지보내기 블럭

 

. 문자메시지 컴포넌트 SendMessageDirect 블럭

메시지를 송신한다. 사실 이 블럭은 가능하면 사용하지  말아요. SendMessageDirect 블럭을 사용한 앱을 구글 플레이 스토어에 제출된다면 추가적인 승인을 요구할 것이다.

 

앱인벤터 문자메시지 컴포넌트 SendMessageDirect 블럭

 

문자메시지 컴포넌트 가져오기/지정하기 블럭들

문제메시지 컴포넌트 중에 가져오기/지정하기 블럭에는 구글보이스활성화여부, 메시지 ,전화번호, 데이터수신활성화 블럭이 있다.

 

. 문자메시지 컴포넌트 구글활성화여부 블럭

구글활성화여부 블럭은 구글보이스를 사용할지를 결정하는 블럭이다. 참이면 구글보이스를 사용이 가능하고 거짓이면 사용하지 못한다.

 

앱인벤터 문자메시지 컴포넌트 구글보이스활성화여부 블럭

 

. 문자메시지 컴포넌트 메시지 블럭

송신할 메시지를 지정하거나, 지정한 메시지 텍스트를 가져오는 블럭이다.

 

앱인벤터 문자메시지 컴포넌트 메시지 블럭

 

. 문자메시지 컴포넌트 전화번호 블럭

수신 전화번호를 지정하거나, 지정한 전화번호를 가져오는 블럭이다.

 

앱인벤터 문자메시지 컴포넌트 전화번호 블럭

 

. 문자메시지 컴포넌트 데이터수신활성화 블럭

메시지수신활성화 상태값을 지정하거나 지정된 값을 가져오는 블럭이다.

상태값에는 Off(1), Foreground(2), Always(3) 값이 있다.

 

앱인벤터 문자메시지 컴포넌트 데이터수신활성화 블럭

 

 

이상으로 앱인벤터 문자메시지 컴포넌트 블럭에 대해 간략히 살펴보았다. 좀더 자세히 확인하기 싶으면, 문자메시지 앱을 통해 블럭들을 하나씩 사용해보면서 블럭의 활용 용도 등을 파악하면 좋을 것 같다. 눈으로 보는 것보다 직접 해보는게 여러모로 코딩하는데 이해하고 코딩 실력이 향상되는데 도움이 된다.

 

Just Do it!!!

Just Drag&Drop!!!

 

MagneticFieldSenso

 

반응형

댓글