PLUG COCOS-2DX 적용 가이드

Quick Start

최신 버전 다운로드

1. 프로젝트 설정

  1. 다운로드한 샘플 프로젝트에 포함된 sample/Classes/plugincafe 폴더를 게임 프로젝트로 복사합니다.

  2. 운영체제에 맞는 PLUG SDK 프로젝트 게임 프로젝트에 추가합니다.

    • Android: sample/proj.android-studio/app/libs 폴더에 있는 PLUG SDK 프로젝트를 게임 프로젝트에 라이브러리로 추가합니다.

    • iOS: lib/iOS 폴더에 있는 PLUG SDK 프로젝트를 게임 프로젝트에 추가합니다.

2. 초기화

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

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

한국어만 지원하는 PLUG SDK를 초기화할 때는 다음과 같은 초기화 정보를 설정합니다.

cafe::CafeSdk::init("U5ZHoj_OStOHOJ8mec_s", "piPHPA9i4E", 28334359 );

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

외국어만 지원하는 PLUG SDK를 초기화할 때는 다음과 같은 초기화 정보를 설정합니다.

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

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

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

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

cafe::CafeSdk::initGlobal("PLUGTESTKEY", "PLUGTESTSECRET", 1, 58);

3. PLUG SDK 시작

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

3.1 startHome() 메서드

startHome() 메서드는 PLUG SDK를 시작하는 메서드입니다.

cafe::CafeSdk::startHome();

Android Studio 샘플 프로젝트

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

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

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

iOS 샘플 프로젝트

  1. sample/proj.ios_mac 폴더 안의 프로젝트를 XCode에서 연다.

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

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

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

글로벌 커뮤니티와 국내 네이버 카페를 모두 지원할 때는 글로벌 커뮤니티를 지원하기 위한 초기화와 국내 네이버 카페를 지원하기 위한 초기화를 모두 설정한다.

플러그 시작과 종료

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

startHome() 메서드

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

static void startHome()

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

   /**
   * 홈 탭으로 시작.
   */
  cafe::CafeSdk::startHome();

가로 모드, 세로 모드

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

Android

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

iOS

iOS 환경에서는 setOrientationIsLandscape: 메서드로 가로 모드와 세로 모드를 적용한다.

다음은 플러그를 가로 모드로 실행하는 예다.

//기본값은 YES
//가로 모드
[[NCSDKManager getSharedInstance] setOrientationIsLandscape:YES];

다음은 플러그를 세로 모드로 실행하는 예다.

//세로 모드
[[NCSDKManager getSharedInstance] setOrientationIsLandscape:NO];

투명도 조절

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

투명도

설명

알파값 100%

플러그로 터치 이벤트 전달

알파값 100% 이하

게임으로 터치 이벤트 전달

Android

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

public static void setTransparentable(Activity activity, boolean isTransparentable)

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

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

  /**
   * 투명도 조절 슬라이더 사용 여부를 설정한다.
   *
   * @param isTransparentable 투명도 조절을 사용할 수 있는지에 대한 boolean 형식의 값
   */
  Glink.setTransparentable(activity, true)

iOS

iOS 환경에서 투명도 조절 슬라이더 사용 여부는 disableTransparentSlider: 메서드로 설정한다.

(void)disableTransparentSlider:(BOOL)disable;

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

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

/*
 투명도 조절 기능 제거
 기본 값: YES
 */
//투명도 기능 사용
[[NCSDKManager getSharedInstance] disableTransparentSlider:YES];

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

//투명도 기능 제거
[[NCSDKManager getSharedInstance] disableTransparentSlider:NO];

위젯

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

위젯 표시

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

static void showWidgetWhenUnloadSdk(bool show)

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

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

  /**
   * 플러그 창이 접히면 위젯을 표시할지 결정한다.
   *
   * @param show 위젯을 표시할지에 대한 boolean 형식의 값
   */
  cafe::CafeSdk::showWidgetWhenUnloadSdk(true);

위젯 닫기

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

static void stopWidget()

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

  /**
   * 위젯을 닫는다.
   */
  cafe::CafeSdk::stopWidget();

위젯 기본 위치 설정

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

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

static void setWidgetStartPosition(bool isLeft, int heightPercentage);

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

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

화면 캡처

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

화면 캡처 버튼

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

virtual void onCafeSdkWidgetScreenshotClick()

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

  /**
   * 리스너를 구현한 클래스를 등록한다.
   */
bool HelloWorld::init()
{
...
    cafe::CafeSdk::setCafeListener(this);
...    
    return true;
}

  /**
   * 위젯 화면 캡처 버튼 클릭 리스너를 설정한다.
   */
void HelloWorld::onCafeSdkWidgetScreenshotClick() {
    CCSize screenSize = Director::getInstance()->getWinSize();
    RenderTexture* texture = RenderTexture::create(screenSize.width,
            screenSize.height);
    texture->setPosition(Vec2(screenSize.width / 2, screenSize.height / 2));

    texture->begin();
    Director::getInstance()->getRunningScene()->visit();
    texture->end();

    std::string fileName = "captured_image.png";
    if (texture->saveToFile(fileName, Image::Format::PNG)) {
        std::string imageUri = FileUtils::getInstance()->getWritablePath()
                + fileName;
        cafe::CafeSdk::startImageWrite(imageUri);
    }
}

화면 캡처 사용 설정

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

static void setUseScreenShot(bool use);

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

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

  /**
   * 화면 캡처 기능을 사용한다.
   */
  cafe::CafeSdk::setUseScreenShot(true);

동영상 녹화 버튼

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

동영상 녹화 버튼을 눌렀을 때 게임 화면을 녹화하는 기능은 onCafeSdkOnRecordFinished() 메서드에 위젯 동영상 녹화 버튼 클릭 리스너(onCafeSdkOnRecordFinished)를 등록해 구현한다.

virtual void onCafeSdkOnRecordFinished(const std::string& fileUrl)

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

  /**
   * 리스너를 구현한 클래스를 등록한다.
   */
bool HelloWorld::init()
{
...
    cafe::CafeSdk::setCafeListener(this);
...    
    return true;
}

  /**
   * 위젯 동영상 녹화 버튼 클릭 리스너를 설정한다.
   */
void HelloWorld::onCafeSdkOnRecordFinished(const std::string& fileUrl) {
    cafe::CafeSdk::startVideoWrite(fileUrl);
}

동영상 녹화

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

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

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

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

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

동영상 녹화 사용 설정

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

static void setUseVideoRecord(bool use)

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

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

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

  /**
   * 동영상 녹화 기능을 사용할지 결정한다.
   *
   * @param use 동영상 녹화 기능을 사용할지에 대한 boolean 형식의 값
   */
  cafe::CafeSdk::setUseVideoRecord(true)

녹화 완료 콜백 리스너

동영상 녹화가 완료됐을 때 처리할 작업은 onCafeSdkOnRecordFinished 리스너를 등록해 구현한다.

virtual void onCafeSdkOnRecordFinished(const std::string& fileUrl)

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

//녹화 완료 리스너 등록
cafe::CafeSdk::setCafeListener(this);

   /**
   * 동영상 녹화가 완료되면 호출된다.
   *
   * @param uri 동영상이 녹화된 파일 경로에 대한 URI(iOS에는 URI가 없다)
   */
void HelloWorld::onCafeSdkOnRecordFinished(const std::string& fileUrl) {
    cafe::CafeSdk::startVideoWrite(-1, "", "", fileUrl);
}

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

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

동영상 녹화 시작

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

Android 5.0 미만 기기와 iOS 9.0 미만 기기에서는 동영상이 녹화되지 않는다.

static void startRecord();

다음은 동영상 녹화를 시작하는 예다.

  /**
   * 동영상 녹화를 시작한다.
   *
   */
  cafe::Record::startRecord();

동영상 녹화 종료

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

static void stopRecord();

다음은 동영상 녹화를 종료하는 예다.

  /**
   * 동영상 녹화를 종료한다.
   *
   */
  cafe::Record::stopRecord();

녹화 완료 콜백 리스너

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

static void setRecordListener(RecordListener* listener);

다음은 녹화 환료 콜백 리스너를 구현한 예다.

    //리스너 등록
    cafe::Record::init();
    cafe::Record::setRecordListener(this);


   /**
   * 동영상 녹화가 완료되면 호출된다.
   *
   * @param uri 동영상이 녹화된 파일 경로에 대한 URI(iOS는 URI가 없다.)
   */
void HelloWorld::onSDKRecordFinish(const std::string& uri) {
    cafe::CafeSdk::startVideoWrite(uri);
}

App Scheme 처리

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

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

Android

Android 환경에서 App Scheme으로 이동하는 배너 이미지가 있을 때 다음과 같이 onCafeSdkClickAppSchemeBanner 리스너를 설정하면 터치 이벤트가 일어났을 때 App Scheme을 처리하는 기능을 구현할 수 있다.

virtual void onCafeSdkClickAppSchemeBanner(const std::string& appScheme)

다음은 App Scheme을 처리하도록 리스너를 구현한 예다.

...
//call back 설정
cafe::CafeSdk::setCafeListener(this);
...

// 앱 스킴 터치 리스너 설정.
void HelloWorld::onCafeSdkClickAppSchemeBanner(const std::string& appScheme) {
    cafe::CafeSdk::showToast(appScheme);
}

iOS

iOS 환경에서 App Scheme으로 이동하는 배너 이미지를 누르면 openURL: 메서드를 실행해 App Scheme을 처리하도록 다음 예와 같이 앱 델리게이트를 설정한다.

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
...
//관리 메뉴에서 등록된 Scheme을 AppDelegate에서 처리합니다.
//ex : gLinkSample://test
    if ([[url scheme] isEqualToString:@"gLinkSample"]) {
        if ([[url host] isEqualToString:@"test"]) {
            //todo
        }
    }
...
}

콜백 리스너

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

콜백 리스너 등록

setCafeListener() 메서드로 플러그에서 발생하는 이벤트를 처리할 콜백 리스너를 등록한다.

static void setCafeListener(CafeListener* listener)

다음은 콜백 리스너 등록을 구현한 예다.

   // HelloWorld.cpp
void HelloWorld::init() {
    ...
    cafe::CafeSdk::setCafeListener(this);
    ...
}

플러그 시작 리스너

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

virtual void onCafeSdkStarted()

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

   // 플러그 시작 리스너 설정
void HelloWorld::onCafeSdkStarted() {
    cafe::CafeSdk::showToast("onCafeSdkStarted");
}

플러그 종료 리스너

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

virtual void onCafeSdkStopped()

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

   // 플러그 종료 리스너 설정
void HelloWorld::onCafeSdkStopped() {
    cafe::CafeSdk::showToast("onCafeSdkStopped");
}

App Scheme 리스너

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

virtual void onCafeSdkClickAppSchemeBanner(
            const std::string& appScheme)

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

   // App Scheme 리스너 설정
void HelloWorld::onCafeSdkClickAppSchemeBanner(const std::string& appScheme) {
    cafe::CafeSdk::showToast(appScheme);
}

카페 가입 리스너

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

virtual void onCafeSdkJoined()

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

   // 카페 가입 리스너 설정
void HelloWorld::onCafeSdkJoined() {
    cafe::CafeSdk::showToast("onCafeSdkJoined");
}

게시글 등록 리스너

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

virtual void onCafeSdkPostedArticle(int menuId, int imageCount, int videoCount)

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

   /** 게시글 등록 리스너 설정
     * @param menuId 게시글이 등록된 menuId
     * @param imageCount 첨부한 이미지 파일의 개수
     * @param videoCount 첨부한 동영상 파일의 개수
     **/
void HelloWorld::onCafeSdkPostedArticle(int menuId, int imageCount, int videoCount) {
    cafe::CafeSdk::showToast("onCafeSdkPostedArticle " + StringUtils::format("%d, %d, %d", menuId, imageCount, videoCount));
}

댓글 등록 리스너

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

virtual void onCafeSdkPostedComment(int articleId)

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

   // 댓글 등록 리스너 설정
void HelloWorld::onCafeSdkPostedComment(int articleId) {
    cafe::CafeSdk::showToast("onCafeSdkPostedComment " + StringUtils::format("%d", articleId));
}

투표 완료 리스너

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

투표 완료 리스너는 플러그 1.6.0 이상부터 지원한다.

virtual void onCafeSdkDidVote(int articleId)

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

   // 투표 완료 리스너 설정
void HelloWorld::onCafeSdkDidVote(int articleId) {
    cafe::CafeSdk::showToast("onCafeSdkDidVote " + StringUtils::format("%d", articleId));
}

화면 캡처 버튼 클릭 리스너

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

화면 캡처 버튼 클릭 리스너는 플러그 1.7.0 이상부터 지원한다.

virtual void onCafeSdkWidgetScreenshotClick()

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


  /**
   * 위젯 스크린숏 버튼 클릭 리스너 설정
   */
void HelloWorld::onCafeSdkWidgetScreenshotClick() {
    CCSize screenSize = Director::getInstance()->getWinSize();
    RenderTexture* texture = RenderTexture::create(screenSize.width,
            screenSize.height);
    texture->setPosition(Vec2(screenSize.width / 2, screenSize.height / 2));

    texture->begin();
    Director::getInstance()->getRunningScene()->visit();
    texture->end();

    std::string fileName = "captured_image.png";
    if (texture->saveToFile(fileName, Image::Format::PNG)) {
        std::string imageUri = FileUtils::getInstance()->getWritablePath()
                + fileName;
        cafe::CafeSdk::startImageWrite(-1, "", "", imageUri);
    }
}

녹화 완료 리스너

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

virtual void onCafeSdkOnRecordFinished(const std::string& fileUrl)

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

  /** 녹화 완료 리스너 설정
   * 동영상 녹화 기능을 사용할지 결정한다.
   *
   * @param uri 동영상이 녹화된 파일 경로에 대한 URI
   */
void HelloWorld::onCafeSdkOnRecordFinished(const std::string& fileUrl) {
    cafe::CafeSdk::startVideoWrite(-1, "", "", fileUrl);
}

게임 아이디 연동

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

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

static void syncGameUserId(std::string gameUserId)

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

  /**
   * 게임 아이디와 카페 아이디를 연동한다.
   *
   * @param gameUserId 게임 아이디
   */
  cafe::CafeSdk::syncGameUserId("usergameid");

테마 색상 변경

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

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

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

void cafe::CafeSdk::setThemeColor(std::string themeColorCSSString, std::string tabBackgroundColorCSSString)
  • themeColorCSString: 테마에서 기본으로 사용할 색상(기본값: #00c73c)

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

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

    • 올바른 예: #ff9800

    • 잘못된 예: #e2ff9800

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

cafe::CafeSdk::setThemeColor("#00c73c", "#44484e");

리소스 이미지 변경

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

Android

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

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

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

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

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

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

iOS

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

  1. NaverCafeSDK.bundle 패키지에 있는 이미지를 원하는 이미지로 바꾼다.

  2. 수정한 패키지를 네이버 카페 플러그 라이브러리에 적용한 다음 프로젝트를 빌드한다.

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

Last updated