PLUG ANDROID 적용 가이드

Quick Start

최신 버전 다운로드

샘플 프로젝트 실행

플러그의 샘플 프로젝트를 Android Studio에서 실행하는 방법은 다음과 같다.

  1. sample/navercafesdk-sample-android-studio 폴더 안의 프로젝트를 Android Studio에서 연다.

  2. 프로젝트를 빌드한다.

  3. 애플리케이션에서 플러그가 정상적으로 실행되는 것을 확인한다.

1. 앱 매니페스트 설정

AndroidManifest.xml 파일에 다음과 같이 접근 권한과 액티비티를 추가합니다.

1.1 PLUG SDK 접근 권한

PLUG SDK에 필요한 접근 권한을 추가합니다.

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

1.2 동영상 녹화 접근 권한

동영상 녹화 기능을 사용할 때 필요한 접근 권한을 추가합니다.

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 필수 사항 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>           <!-- 선택 사항 -->

2. 초기화

PLUG SDK가 지원하는 언어에 따라 다음과 같이 PLUG SDK를 초기화합니다.

2.1 PLUG SDK 초기화(한국어만 지원 - 네이버 카페)

한국어만 지원하는 PLUG SDK를 초기화할 때는 다음과 같은 초기화 옵션을 설정하고 init() 메서드를 호출합니다.

fpublic class MainActivity extends Activity {

  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    /**
     * 네이버 아이디로 로그인 개발자 센터에서 받은 정보로 플러그를 초기화한다.
     * Glink 클래스의 다른 메서드를 호출하기 전에 반드시 초기화를 먼저 해야 한다.
     * 개발자 센터 주소: https://nid.naver.com/devcenter/main.nhn
     */
    final int cafeId = 28290504;
    final String clientId = "197CymaStozo7X5r2qR5";
    final String clientSecret = "evCgKH1kJL";
    Glink.init(this, clientId, clientSecret, cafeId);
    ...
}

2.2 PLUG SDK 초기화(외국어만 지원 - Moot)

외국어만 지원하는 PLUG SDK를 초기화할 때는 다음과 같은 초기화 옵션을 설정하고 initGlobal() 메서드를 호출합니다.

  • consumerKey: 커뮤니티를 개설하고 받은 컨슈머 키(Consumer Key)

  • consumerSecretKey: 커뮤니티를 개설하고 받은 컨슈머 시크릿(Consumer Secret Key)

  • cummunityNo: 커뮤니티를 개설하고 받은 커뮤니티 No(cummunityNo)

  • loungeNo: 라운지를 개설하고 받은 라운지 No(cummunityNo)

initGlobal() 메서드는 외국어를 지원하는 PLUG SDK를 초기화하는 메서드입니다.

public class MainActivity extends Activity {

  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     /**
     * 제휴 메일을 통해 제휴를 신청하면 커뮤니티 아이디와 컨슈머 키를 받을 수 있다.
     * Glink 클래스의 다른 메서드를 호출하기 전에 반드시 초기화를 먼저 해야 한다.
     * 제휴 메일 주소: dl_plugsupport@navercorp.com
     */
    final String consumerKey = "PLUGTESTKEY";
    final String consumerSecretKey = "PLUGTESTSECRET";
    final int cummunityNo = 1;
    final int loungeNo = 58;

    // 글로벌 커뮤니티를 위한 플러그 초기화. 국내 네이버 카페만 사용할 때는 initGlobal() 메서드를 호출하지 않아도 된다.
    Glink.initGlobal(this, "PLUGTESTKEY", "PLUGTESTSECRET", cummunityNo, loungeNo)
    ;
}

2.3 글로벌 커뮤니티와 국내 네이버 카페를 지원하는 플러그의 초기화

글로벌 커뮤니티와 국내 네이버 카페를 모두 지원할 때는 initGlobal() 메서드와 init() 메서드로 플러그를 초기화한다.

다음은 플러그 초기화를 구현한 예다.

public class MainActivity extends Activity {

  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    /**
     * 네이버 아이디로 로그인 개발자 센터에서 받은 정보로 플러그를 초기화한다.
     * Glink 클래스의 다른 메서드를 호출하기 전에 반드시 초기화를 먼저 해야 한다.
     * 개발자 센터 주소: https://nid.naver.com/devcenter/main.nhn
     */
    final int cafeId = 28290504;
    final String clientId = "197CymaStozo7X5r2qR5";
    final String clientSecret = "evCgKH1kJL";
    
    //국내 네이버 카페를 위한 플러그 초기화
    Glink.init(this, clientId, clientSecret, cafeId);

     /**
     * 제휴 메일을 통해 제휴를 신청하면 커뮤니티 아이디와 컨슈머 키를 받을 수 있다.
     * Glink 클래스의 다른 메서드를 호출하기 전에 반드시 초기화를 먼저 해야 한다.
     * 제휴 메일 주소: dl_plugsupport@navercorp.com
     */
    final int globalCafeId = 1013329;
    final String neoIdConsumerKey = "IHCd_HmSiMcXOMC37xZ8";
    final String defaultChannel = "";



    //글로벌 커뮤니티를 위한 플러그 초기화. 국내 네이버 카페만 사용할 때는 initGlobal() 메서드를 호출하지 않아도 된다.
    Glink.initGlobal(this, neoIdConsumerKey, globalCafeId);
}

3. PLUG SDK 시작

초기화가 완료되면 PLUG SDK를 실행합니다.

3.1 startHome() 메서드

startHome() 메서드는 홈 탭이 선택된 상태로 PLUG SDK를 시작하는 메서드입니다.

/**
* 홈 탭으로 시작
*/
Glink.startHome(activity)

플러그 시작과 종료

플러그를 특정한 탭이 선택된 상태로 시작하거나 네이버 플러그를 종료한다.

startHome() 메서드

홈 탭이 선택된 상태로 플러그를 시작한다.

public static void startHome(Activity activity);

다음은 startHome() 메서드를 구현한 예다.

   /**
   * 홈 탭으로 시작
   */
  Glink.startHome(activity)

stop() 메서드

플러그 화면을 바로 닫고 플러그를 종료한다.

public static void stop(final Activity activity);

다음은 stop() 메서드를 구현한 예다.

   /**
   * 플러그 종료
   */
  Glink.stop(activity)

플러그 화면이 열려 있는지 확인한다.

public static boolean isShowGlink(Activity activity);

다음은 isShowGlink() 메서드를 구현한 예다.

   /**
   * 플러그 화면이 열려 있는지 확인한다.
   */
  Glink.isShowGlink(activity)

기본 채널 설정

플러그의 언어별 커뮤니티인 채널의 기본 채널은 기기에 설정된 언어로 설정된다. 기본 채널을 특정한 언어로 설정하고 싶다면 setChannelCode() 메서드를 사용한다.

public static void setChannelCode(String channelCode);

다음은 기본 채널을 특정한 언어로 설정한 예다.

Glink.setChannelCode("en");

가로 모드, 세로 모드

플러그는 가로 모드와 세로 모드를 모두 지원한다.

Android 환경에서는 별도로 설정하지 않아도 화면의 가로, 세로 상태에 따라 가로 모드, 세로 모드가 자동으로 적용된다.

투명도 조절

플러그 화면 왼쪽 위의 투명도 조절 슬라이더로 투명도를 조절하면 게임과 카페를 동시에 사용할 수 있다.

투명도 조절 슬라이더 사용 여부는 setTransparentable() 메서드로 설정한다.

public static void setTransparentable(Activity activity, boolean isTransparentable);

isTransparentable 파라미터의 값을 true로 설정하면 투명도 조절 슬라이더를 사용할 수 있다(기본값: true).

다음은 투명도 조절 슬라이더를 사용하도록 구현한 예다.

  /**
   * 투명도 조절 슬라이더 사용 여부를 설정한다.
*/
Glink.setTransparentable(activity, true)

위젯

위젯은 플러그의 접기 버튼을 누르면 자동으로 화면에 나타나는 요소다. 위젯으로 게임 내 어디서든 플러그를 이용할 수 있다.

위젯 표시

플러그의 접기 버튼을 눌렀을 때 위젯을 표시할지는 showWidgetWhenUnloadSdk() 메서드로 설정한다.

public static void showWidgetWhenUnloadSdk(Activity activity, boolean show);

show 파라미터의 값을 true로 설정하면 플러그 창이 접힐 때 위젯이 나타난다(기본값: true).

다음은 위젯이 표시되도록 구현한 예다.

  /**
   * 플러그 창이 접힐 때 위젯을 표시할지 결정한다.
   */
  Glink.showWidgetWhenUnloadSdk(activity, true);

위젯 실행

위젯을 실행하려면 startWidget() 메서드를 사용한다.

startWidget() 메서드는 플러그 1.7.0부터 지원한다.

public static void startWidget(Activity activity);

다음은 위젯을 실행하는 예다.

/**
 * 위젯을 실행한다.
 */
Glink.startWidget(activity);

위젯 닫기

위젯을 닫으려면 stopWidget() 메서드를 사용한다.

public static void stopWidget(Activity activity)

다음은 위젯을 강제로 닫는 예다.

  /**
   * 위젯을 닫는다.
   */
  Glink.stopWidget(activity);

위젯 기본 위치 설정

위젯이 처음 실행될 때는 화면 왼쪽의 중앙에 나타난다. 위젯이 처음 실행될 때 나타날 기본 위치를 설정하려면 setWidgetStartPosition() 메서드를 사용한다.

단, 사용자가 위젯을 옮긴 다음 위젯이 다시 실행될 때는 사용자가 이동한 마지막 위치에 위젯이 나타난다.

위젯의 기본 위치 설정은 플러그 2.3.0부터 지원한다.

public static void setWidgetStartPosition(Activity activity,
 boolean isLeft, int heightPercentage)

다음은 위젯 기본 위치를 화면 오른쪽, 위에서 20% 위치로 설정하는 예다.

  /**
   * isLeft: true면 왼쪽에, false면 오른쪽에 나타난다.
   * heightPercentage:  세로의 위치를 %로 지정할 수 있다.
   */
  Glink.setWidgetStartPosition(activity, false, 20);

화면 캡처

위젯의 화면 캡처 버튼을 누르면 게임 화면을 캡처할 수 있다.

화면 캡처 버튼

화면 캡처 버튼을 눌렀을 때 화면을 캡처하는 기능은 setOnWidgetScreenshotClickListener() 메서드에 위젯 화면 캡처 버튼 클릭 리스너(OnWidgetScreenshotClickListener)를 등록해 구현한다.

public static void setOnWidgetScreenshotClickListener(Glink.OnWidgetScreenshotClickListener onWidgetScreenshotClickListener);

다음은 위젯 화면 캡처 버튼 클릭 리스너를 구현한 예다.

  /**
   * 위젯 화면 캡처 버튼 클릭 리스너 설정
   */
  Glink.setOnWidgetScreenshotClickListener(new Glink.OnWidgetScreenshotClickListener() {
      @Override public void onScreenshotClick() {
        //TODO 화면 캡처 및 플러그 실행(아래는 sudo 코드)
        String uri = screenCapture();
        Glink.startImageWrite(getActivity(), "title", uri);
      }
    });

화면 캡처 사용 설정

setUseScreenshot() 메서드로 화면 캡처 기능 사용 여부를 설정한다.

public static void setUseScreenshot(Activity activity, boolean use);

use 파라미터의 값을 true로 설정하면 위젯에 화면 캡처 버튼이 표시된다(기본값: true).

다음은 화면 캡처 기능을 사용하도록 구현한 예다.

/**
* 화면 캡처 기능을 사용할지 결정한다.
*/
Glink.setUseScreenshot(activity, true

동영상 녹화

동영상 녹화 버튼을 누르면 게임 중에 게임 화면을 녹화할 수 있다.

  • 동영상 녹화 기능은 Android 5.0 이상 기기부터 지원한다.

접근 권한 설정

동영상 녹화 기능을 사용하려면 Androidmanifest.xml 파일에 다음과 같이 접근 권한을 추가해야 한다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

위젯의 동영상 녹화 기능 사용

위젯의 동영상 녹화 버튼을 누르면 게임 중에 게임 화면을 녹화할 수 있다.

동영상 녹화 사용 설정

setUseVideoRecord() 메서드로 동영상 녹화 기능 사용 여부를 설정한다.

public static void setUseVideoRecord(Activity activity, boolean use);

use 파라미터의 값을 true로 설정하면 위젯에 동영상 녹화 버튼이 표시된다(기본값: true).

Android 5.0 미만 기기에서는 use 파라미터의 값을 true로 설정해도 위젯에 동영상 녹화 버튼이 표시되지 않는다.

다음은 동영상 녹화 기능을 사용하도록 구현한 예다.

/**
 * 동영상 녹화 기능을 사용할지 결정한다.
 */
Glink.setUseVideoRecord(activity, true)

녹화 완료 리스너

동영상 녹화가 완료됐을 때 처리할 작업은 setOnRecordFinishListener() 메서드에 녹화 완료 리스너(OnRecordFinishListener)를 등록해 구현한다.

public static void setOnRecordFinishListener(OnRecordFinishListener onRecordFinishListener);

다음은 녹화 완료 리스너를 구현한 예다.

/**
 * 녹화 완료 리스너 등록
 */
Glink.setOnRecordFinishListener(new Glink.OnRecordFinishListener() {
    @Override public void onRecordFinished(String uri) {
      Glink.startVideoWrite(MainActivity.this, -1, "title", "subject", uri);
    }
  });

게임의 동영상 녹화 기능 사용

게임 개발사에서 동영상 녹화 버튼을 구현해 게임 화면을 녹화할 수 있다.

동영상 녹화 시작과 종료

동영상 녹화를 시작하려면 startRecord() 메서드를 사용한다.

/*
동영상 녹화를 시작한다.
*/

PlugRecordManager.startRecord(Activity activity);

동영상 녹화를 종료하려면 stopRecord() 메서드를 사용한다.

/*
동영상 녹화를 종료한다.
*/

PlugRecordManager.stopRecord();

동영상 녹화 리스너

게임 개발사의 버튼으로 동영상을 녹화할 때 발생하는 이벤트를 처리하는 콜백 리스너는 다음과 같다.

public interface OnRecordManagerListener {
    void onStartRecord();

    void onErrorRecord();

    void onFinishRecord(String uri);
  }

다음은 동영상 녹화 리스너를 구현한 예다.

PlugRecordManager.setOnRecordManagerListener(  
    new PlugRecordManager.OnRecordManagerListener() {
      @Override public void onStartRecord() {
        //record started
      }

      @Override public void onErrorRecord() {
        //recording error
      }

      @Override public void onFinishRecord(String uri) {
        //record finished
      }
    });

App Scheme 처리

게임에서 플러그의 홈 화면에 나오는 배너 이미지를 누르면 App Scheme으로 이동해 게임 기능을 실행하게 할 수 있다.

App Scheme으로 이동할 배너 이미지는 카페 관리 메뉴에서 등록한다.

App Scheme으로 이동하는 배너 이미지에 터치 이벤트가 일어났을 때 App Scheme을 처리하는 기능은 setOnClickAppSchemeBannerListener() 메서드에 App Scheme 리스너(OnClickAppSchemeBannerListener)를 등록해 구현한다.

public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener);

다음은 App Scheme을 처리하도록 setOnClickAppSchemeBannerListener() 메서드를 구현한 예다.

// App Scheme 리스너 설정
 Glink.setOnClickAppSchemeBannerListener(new Glink.OnClickAppSchemeBannerListener() {
   @Override public void onClickAppSchemeBanner(String appScheme) {
     // 카페 관리에서 설정한 appScheme 문자열을 플러그로 넘겨준다.
     // 각 appScheme을 처리하는 코드를 구현한다.
     Toast.makeText(MainActivity.this, appScheme, Toast.LENGTH_LONG).show();
   }
 });

콜백 리스너

콜백 리스너를 등록해 플러그에서 발생하는 이벤트를 처리한다.

플러그 시작 리스너

OnSdkStartedListener는 플러그가 시작될 때 발생하는 이벤트는 처리하는 콜백 리스너다.

처리할 작업은 setOnSdkStartedListener() 메서드에 OnSdkStartedListener를 등록해 구현한다.

public static void setOnSdkStartedListener(Glink.OnSdkStartedListener onSdkStartedListener);

다음은 플러그 시작 리스너를 구현한 예다.

   // 플러그 시작 리스너 설정
    Glink.setOnSdkStartedListener(new Glink.OnSdkStartedListener() {
      @Override public void onSdkStarted() {
        Toast.makeText(MainActivity.this, "플러그 시작", Toast.LENGTH_LONG).show();
      }
    });

플러그 종료 리스너

OnSdkStoppedListener는 플러그가 종료될 때 발생하는 이벤트를 처리하는 콜백 리스너다.

처리할 작업은 setOnSdkStoppedListener() 메서드에 OnSdkStoppedListener를 등록해 구현한다.

public static void setOnSdkStoppedListener(Glink.OnSdkStoppedListener onSdkStoppedListener);

다음은 플러그 종료 리스너를 구현한 예다.

   // 플러그 종료 리스너 설정
    Glink.setOnSdkStoppedListener(new Glink.OnSdkStoppedListener() {
      @Override public void onSdkStopped() {
        Toast.makeText(MainActivity.this, "플러그 종료", Toast.LENGTH_LONG).show();
      }
    });

App Scheme 리스너

onClickAppSchemeBannerListener는 게임 사용자가 App Scheme으로 이동하는 배너 이미지를 눌렀을 때 발생하는 이벤트를 처리하는 콜백 리스너다.

App Scheme에 관한 자세한 내용은 "App Scheme 처리"를 참고한다.

처리할 작업은 setOnClickAppSchemeBannerListener() 메서드에 OnClickAppSchemeBannerListener를 등록해 구현한다.

public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener);

다음은 App Scheme 리스너를 구현한 예다.

public static void setOnClickAppSchemeBannerListener( OnClickAppSchemeBannerListener onClickAppSchemeBannerListener)

   // App Scheme 리스너 설정
    Glink.setOnClickAppSchemeBannerListener(new Glink.OnClickAppSchemeBannerListener() {
      @Override public void onClickAppSchemeBanner(String appScheme) {
        // 카페 관리에서 설정한 appScheme 문자열을 플러그에서 넘겨준다.
        // 각 appScheme을 처리하는 코드를 구현한다.
        Toast.makeText(MainActivity.this, appScheme, Toast.LENGTH_LONG).show();
      }
    });

카페 가입 리스너

OnJoinedListener는 게임 사용자가 플러그에서 카페에 가입했을 때 발생하는 이벤트를 처리하는 콜백 리스너다.

처리할 작업은 setOnJoinedListener() 메서드에 onJoinedListener를 등록해 구현한다.

public static void setOnJoinedListener(Glink.OnJoinedListener onJoinedListener);

다음은 카페 가입 리스너를 구현한 예다.

   // 카페 가입 리스너 설정
    Glink.setOnJoinedListener(new Glink.OnJoinedListener() {
      @Override public void onJoined() {
        Toast.makeText(MainActivity.this, "카페에 가입하였습니다.", Toast.LENGTH_SHORT).show();
      }
    });

게시글 등록 리스너

OnPostedArticleListener는 사용자가 플러그에서 게시글을 등록했을 때 발생하는 이벤트를 처리하는 콜백 리스너다.

처리할 작업은 setOnPostedArticleListener() 메서드에 OnPostedArticleListener를 등록해 구현한다.

public static void setOnPostedArticleListener( Glink.OnPostedArticleListener onPostedArticleListener);

다음은 게시글 등록 리스너를 구현한 예다.

   // 게시글 등록 리스너 설정
    Glink.setOnPostedArticleListener(new Glink.OnPostedArticleListener() {
      @Override public void onPostedArticle(int menuId, int imageCount, int videoCount) {
        String message = String.format("게시글이 작성되었습니다. (from listener, 메뉴: %d)", menuId);
        Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
      }
    });

댓글 등록 리스너

OnPostedCommentListener는 사용자가 플러그에서 게시글에 댓글을 등록했을 때 발생하는 이벤트를 처리하는 콜백 리스너다.

처리할 작업은 setOnPostedCommentListener() 메서드에 OnPostedCommentListener를 등록해 구현한다.

public static void setOnPostedCommentListener( Glink.OnPostedCommentListener onPostedCommentListener);

다음은 댓글 등록 리스너를 구현한 예다.

   // 댓글 등록 리스너 설정
    Glink.setOnPostedCommentListener(new Glink.OnPostedCommentListener() {
      @Override public void onPostedComment(int articleId) {
        String message = String.format("댓글이 작성되었습니다. (from listener, 게시글: %d)", articleId);
        Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
      }
    });

투표 완료 리스너

OnVotedListener는 사용자가 플러그에서 투표가 있는 게시글의 투표를 완료했을 때 발생하는 이벤트를 처리하는 콜백 메서드다.

처리할 작업은 setOnVotedListener() 메서드에 OnVotedListener를 등록해 구현한다.

public static void setOnVotedListener(Glink.OnVotedListener listener);

다음은 투표 완료 리스너를 구현한 예다.

   // 투표 완료 리스너 설정
    Glink.setOnVotedListener(new Glink.OnVotedListener() {
      @Override public void onVoted(int articleId) {
        String message = String.format("투표가 완료되었습니다. (from listener, 게시글: %d)", articleId);
        Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
      }
    });

화면 캡처 버튼 클릭 리스너

OnWidgetScreenshotClickListener은 사용자가 위젯에서 화면 캡처 버튼을 눌렀을 때 발생하는 이벤트를 처리하는 콜백 리스너다. 화면 캡처 버튼에 관해서는 "위젯"을 참고한다.

처리할 작업은 setOnWidgetScreenshotClickListener() 메서드에 OnWidgetScreenshotClickListener를 등록해 구현한다.

public static void setOnWidgetScreenshotClickListener(Glink.OnWidgetScreenshotClickListener onWidgetScreenshotClickListener);

다음은 화면 캡처 버튼 클릭 리스너를 구현한 예다. 화면을 캡처하는 기능을 콜백 리스너에 구현해야 화면 캡처 버튼을 눌렀을 때 화면을 캡처할 수 있다.

  // 위젯 화면 캡처 버튼 클릭 리스너 설정
  Glink.setOnWidgetScreenshotClickListener(new Glink.OnWidgetScreenshotClickListener() {
      @Override public void onScreenshotClick() {
        //TODO 화면 캡처 및 플러그 실행(아래는 sudo 코드)
        String uri = screenCapture();
        Glink.startImageWrite(getActivity(), "title", uri);
      }
    });

녹화 완료 리스너

onRecordFinishListener는 플러그에서 동영상 녹화가 완료되면 발생하는 이벤트를 처리하는 콜백 리스너다.

처리할 작업은 setOnRecordFinishListener() 메서드에 OnRecordFinishListener를 등록해 구현한다.

public static void setOnRecordFinishListener(OnRecordFinishListener onRecordFinishListener);

다음은 녹화 완료 리스너를 구현한 예다.

  // 녹화 완료 리스너 설정
  Glink.setOnRecordFinishListener(new Glink.OnRecordFinishListener() {
      @Override public void onRecordFinished(String uri) {
        Glink.startVideoWrite(MainActivity.this, -1, "title", "subject", uri);
      }
    });

게임 아이디 연동

사용자의 게임 아이디와 카페 아이디를 연동해 관리할 수 있다. 연동된 게임 아이디와 카페 아이디 목록은 카페 관리 메뉴에서 확인할 수 있다.

게임 아이디를 카페 아이디와 연동하려면 syncGameUserId() 메서드를 사용한다.

public static void syncGameUserId(Activity activity, String gameUserId);

다음은 게임 아이디와 카페 아이디를 연동하는 예다.

  /**
   * 게임 아이디와 카페 아이디를 연동한다.
   */
  Glink.syncGameUserId(activity, "8263821")

테마 색상 변경

플러그의 테마 색상을 변경할 수 있다.

테마 색상을 변경하려면 setThemeColor() 메서드를 사용한다.

/** 
* themeColorCSString 파라미터의 기본값은 '#00c73c'다.
* tabBackgroundColorCSSString 파라미터의 기본값은 '#44484e'다.
* tabBackgroundColorCSSString 파라미터는 기본값을 사용하기를 권장한다.
**/

public static void setThemeColor(String themeColorCSSString);
public static void setThemeColor(String themeColorCSSString, String tabBackgroundColorCSSString)
  • themeColorCSString: 테마에서 기본으로 사용할 색상(기본값: #00c73c)

  • tabBackgroundColorCSSString: 탭 메뉴의 배경 색상(기본값: #44484e). 기본값을 사용하기를 권장한다.

주의 CSS 색상값에 알파값을 넣으면 안 된다.

  • 올바른 예: #ff9800

  • 잘못된 예: #e2ff9800

다음은 테마 색상을 변경하는 예다.

Glink.setThemeColor("#2e65d9"); 
Glink.setThemeColor("#2e65d9", "#44484e");

리소스 이미지 변경

네이버 카페 플러그 라이브러리에 포함된 리소스 이미지는 다음과 같이 변경할 수 있다.

  1. 네이버 카페 플러그 라이브러리 파일(.aar 파일)의 압축을 해제한다.

  2. 압축을 해제한 폴더의 /res/drawable-xhdpi 폴더에 있는 이미지를 원하는 이미지로 바꾼다.

  3. 압축을 해제한 폴더를 다시 라이브러리 파일(.aar 파일)로 압축한다.

  4. 새로 압축한 네이버 카페 플러그 라이브러리를 적용해 프로젝트를 빌드한다.

주의 이미지를 변경할 때 이미지의 크기는 기존 이미지와 동일해야 한다.

Last updated