# 준비사항

앱을 실행하기 위한 필수 라이브러리와 프로젝트 구조를 알아보자

# 프로젝트의 폴더 구조

프로젝트 ( app 폴더 외 파일은 제외 )
├─build.gradle
├─libs
│  ├─android-support-v4.jar
│  └─BGAPhotoPicker.aar
├─src.test.java.com.vchatcloud.androidsample.ExampleUnitTest.java
├─src.androidTest.java.com.vchatcloud.androidsample.ExampleInstrumentedTest.java
└─src.main
   ├─AndroidManifest.xml
   ├─ic_launcher-playstore.png
   ├─res
   │  ├─color
   │  ├─drawable
   │  ├─drawable-v24
   │  ├─layout
   │  ├─mipmap-anydpi-v26
   │  ├─mipmap-hdpi
   │  ├─mipmap-mdpi
   │  ├─mipmap-xhdpi
   │  ├─mipmap-xxhdpi
   │  ├─mipmap-xxxhdpi
   │  ├─values
   │  └─xml
   └─java.com.vchatcloud.androidsample
      ├─adapter
      │   ├─ChatListAdapter.java
      │   ├─EmojiAdapter.java
      │   └─HorizontalListView.java
      ├─fragment
      │   └─EmojiFragment.java
      ├─photoView
      │   ├─HackyViewPager.java
      │   └─ViewPagerActivity.java
      ├─resourse
      │   ├─Constant.java
      │   ├─EmojiRescourse.java
      │   └─ProfileRescource.java
      ├─viewpagerindicator
      │   ├─CirclePageIndicator.java
      │   └─PageIndicator.java
      ├─BackKeyHandler.java
      ├─ChatActivity.java
      ├─ImageEdit.java
      ├─LoadingActivity.java
      ├─MainActivity.java
      ├─Message.java
      ├─PreferenceManager.java
      └─ProgressRequestBody.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

# 필수 변경사항

샘플 코드를 다운로드 받으면 반드시 channelKey 값을 변경해야 합니다.
하단의 설명을 통해서 변경할 부분을 확인하여서 변경해주시면 됩니다. 폴더의 구성은 프로젝트의 폴더 구조를 참고해 주세요.

    # vchatcloud 객체

    # vchatcloud 클래스

    VChatCloud 인스턴스는 싱글톤으로 호출이 가능하다.

    VChatCloud.getInstance()
    
    1

    # channel 메소드 선언

    channel는 vchatCloud 인스턴스에 구현된 메소드입니다.
    channel 메소드를 이용하여 채팅방에 진입하고, 메시지 이벤트들을 컨트롤할 수 있습니다.
    아래 코드는 채팅방 진입만 다루고 있고, 메시지 전송, 공지등은 자세한 이벤트 설명은 좌측 메뉴리스트의 메시지를 참고해주세요.

    ChannelOptions options = new ChannelOptions();
    options.setChannelKey(room_id);
    options.setClientKey(deviceUuid);
    options.setNickName(nick_name);
    options.setUserInfo(userInfo);
    Channel channel = VChatCloud.getInstance().joinChannel(options, new JoinChannelCallback() {
        public void callback(JSONArray history, VChatCloudException e) {
            super.callback(history, e);
            int historySize = history.size() -1;
            for (; historySize >= 0; historySize--) {
                Log.d("히스토리", "" + history.get(historySize) );
            }
            Log.d("히스토리", "룸 시작");
        }
    });
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    • 파라미터 값(options)

      식별자 설명
      ChannelKey String 채팅방 생성 후 발급받은 Channel Key
      ClientKey String 접속 단말 설정 고유키
      NickName String 채팅방 입장 유저의 별명
      UserInfo String 유저 프로필정보
    • 결과 값

      • error
      식별자 설명
      code String 에러 코드
      type String 에러 타입
      message String 에러 메시지
      • history
      식별자 설명
      logType String 로그타입
      roomId String 채팅방 생성 후 발급받은 Channel Key
      clientKey String 접속 단말 설정 고유키
      message String 메시지내용
      mimeType String 메시지형태 (text: 일반텍스트, emoji: 이모지)
      messageType String 빈값이면 일반 메시지, 공지일경우 : "notice"
      nickName String 채팅방 입장 유저의 별명
      date String 전송시간
      grade String 유저등급

    # 코드 작성

    실제 앱을 동작을 위한 코드로
    채팅방으로 입장 / 채팅 / 귓속말 / 전체공지 / 추방 / 글쓰기 제한 으로 구성되어 있습니다.
    입장 시에 채팅방 번호 및 별칭을 입력하는 로그인 팝업으로 진행하오니 이점 참고해 주세요.
    아래에는 각각 이벤트를 컨트롤하는 java 코드 부분입니다.

      Copyright 2022. E7Works Inc. & JOYTUNE Corp. All Rights Reserved.