Unity3D Android 91 Market Platform SDK Integration - 3. EnterPlatform, UserFeedback, AppUpdate

 유니티3D 안드로이드에 중국 91 마켓 플랫폼 SDK 초기화, 로그인, 로그아웃 연동을 정리해봤습니다. 이번에는 91 플랫폼 페이지 및 유저 피드백 페이지, 앱 업데이트 처리에 대한 것을 정리해봅니다.


1. 91 플랫폼 실행

 public void EnterPlatform_U() {
  Log.d(LOG_TAG, "EnterPlatform");
  runOnUiThread(new Runnable() {

   @Override
   public void run() {
    // TODO Auto-generated method stub
    NdCommplatform.getInstance().ndEnterPlatform(0, UnityPlayer.currentActivity);
   }
  });
 }
 91 마켓 플랫폼 메인 페이지를 호출하는 안드로이드 부분입니다.

 public void EnterPlatform()
 {
  curActivity.Call("EnterPlatform_U");
 }

  fYpos += 50;
  if (GUI.Button(new Rect(0, fYpos, 100, 50), "EnterPlatform") == true)
  {
   Plugin91Manager.GetInstance().EnterPlatform();
  }
 유니티3D Plugin91Manager와 TestGUI 부분입니다.

  간단히 SDK 함수 호출해주면 BBS나 소설 기능등이 들어간 91 플랫폼 실행이 가능합니다.


2. 유저 피드백
 public void UserFeedback_U() {
  Log.d(LOG_TAG, "UserFeedback");
  runOnUiThread(new Runnable() {

   @Override
   public void run() {
    // TODO Auto-generated method stub
    NdCommplatform.getInstance().ndUserFeedback(UnityPlayer.currentActivity);
   }
  });
 }
 유저가 개발사에 피드백을 보낼 수 있는 페이지를 호출합니다.

 public void UserFeedback()
 {
  curActivity.Call("UserFeedback_U");
 }

  fYpos += 50;
  if (GUI.Button(new Rect(0, fYpos, 100, 50), "UserFeedback") == true)
  {
   Plugin91Manager.GetInstance().UserFeedback();
  }
 유니티3D Plugin91Manager와 TestGUI 부분입니다.

 유저 피드백 화면입니다. 개발자는 관리 포탈에서 확인 및 답변이 가능하다고 합니다.


3. 앱 업데이트
 public void Update_U() {
  runOnUiThread(new Runnable() {

   @Override
   public void run() {
    // TODO Auto-generated method stub
    NdCommplatform.getInstance().ndAppVersionUpdate(UnityPlayer.currentActivity, new NdCallbackListener() {

     @Override
     public void callback(int arg0, Integer arg1) {
      // TODO Auto-generated method stub
      if (arg0 == NdErrorCode.ND_COM_PLATFORM_SUCCESS) {
       
       switch(arg1) {
        // 신규 버전이 없다
       case NdCommplatform.UPDATESTATUS_NONE:
        Log.d(LOG_TAG, "UPDATESTATUS_NONE");
        break;
        // SD카드 장착 안됨
       case NdCommplatform.UPDATESTATUS_UNMOUNTED_SDCARD:
        Log.d(LOG_TAG, "UPDATESTATUS_UNMOUNTED_SDCARD");
        break;
        // 유저가 업데이트 취소
       case NdCommplatform.UPDATESTATUS_CANCEL_UPDATE:
        Log.d(LOG_TAG, "UPDATESTATUS_CANCEL_UPDATE");
        break;
        // 업데이트 확인 실패
       case NdCommplatform.UPDATESTATUS_CHECK_FAILURE:
        Log.d(LOG_TAG, "UPDATESTATUS_CHECK_FAILURE");
        break;
        // 강제 업데이트 중
       case NdCommplatform.UPDATESTATUS_FORCES_LOADING:
        Log.d(LOG_TAG, "UPDATESTATUS_FORCES_LOADING");
        break;
        // 추천 업테이즈 중
       case NdCommplatform.UPDATESTATUS_RECOMMEND_LOADING:
        Log.d(LOG_TAG, "UPDATESTATUS_RECOMMEND_LOADING");
        break;
       default:
        Log.d(LOG_TAG, "UPDATESTATUS_CHECK_FAILURE " + arg1);
        break;
       }
      } else {
       Log.d(LOG_TAG, "UPDATESTATUS_CHECK_FAILURE " + arg0 + "-" + arg1);
      }
      UnityPlayer.UnitySendMessage("Plugin91Manager", "UpdateResult_J", arg1.toString());
     }
    });
   }
  });
 }
 앱의 버전 업데이트 여부를 체크하고 필요하다면 업데이트를 해줍니다. 리스너를 통해 콜백된 부분만 처리하면 되고 업데이트 확인창이나 실제 다운로드 기능은 직접 구현할 필요가 없습니다. 91SDK에서 내부적으로 진행해줍니다. 물론 ndCheckVersionUpdate 라고 개발사에서 직접 다운로드 기능 구현까지 해아하는 인터페이스도 제공하긴 합니다만 사용하실분들은 없겠죠.

 public void UpdateApp()
 {
  curActivity.Call("Update_U");
 }
 
 void UpdateResult_J(string strResult)
 {
  // public static final int UPDATESTATUS_NONE = 0;
  if (strResult == "0")
  {
   this.strLogMsg = "Update None";
  }
  // public static final int UPDATESTATUS_UNMOUNTED_SDCARD = 1;
  else if(strResult == "1")
  {
   this.strLogMsg = "Update Failed. SDCard Unmounted";
  }
  // public static final int UPDATESTATUS_CANCEL_UPDATE = 3;
  else if(strResult == "3")
  {
   this.strLogMsg = "Update Cancel";
  }
  // public static final int UPDATESTATUS_CHECK_FAILURE = 4;
  else if(strResult == "4")
  {
   this.strLogMsg = "Update Check Failed";
  }
  // public static final int UPDATESTATUS_FORCES_LOADING = 5;
  else if(strResult == "5")
  {
   this.strLogMsg = "Update Force!";
  }
  // public static final int UPDATESTATUS_RECOMMEND_LOADING = 6;
  else if(strResult == "6")
  {
   this.strLogMsg = "Update Recommend";
  }
  else
  {
   this.strLogMsg = "Update Failed " + strResult;
  }
 }

  fYpos += 50;
  if (GUI.Button(new Rect(0, fYpos, 100, 50), "UpdateApp") == true)
  {
   Plugin91Manager.GetInstance().UpdateApp();
  }

 아직은 테스트 중이니 업데이트 할 것이 없어서 Update None가 되었네요.

 다음에는 91 플랫폼 SDK 연동 마지막 포스팅으로 결제부분에 대해 정리해보겠습니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.