콘텐츠로 이동

프로모션 배지

프로모션 배지란 유저에게 새로운 프로모션 항목이 등록되었음을 알려주기 위해 게임 내 버튼이나 아이콘에 표시하는 부가적 UI 요소를 의미합니다.

프로모션 배지 기능

프로모션 배지는 새 글이 등록되고, 노출이 시작되면 해당 정보를 게임 클라이언트에게 전달해서 유저에게 알릴 수 있는 기능입니다. 프로모션의 기능인 메인 배너, 커스텀 웹 뷰, 커스텀 보드, 공지사항 아이콘에 적용 가능합니다.

프로모션 배지 UI 구현

Hive SDK는 어떤 프로모션 항목이 새롭게 올라온 항목이면 배지 ON을, 새 항목이 아니면 배지 OFF를 게임 클라이언트에 전달합니다. 배지 노출은 이 ON/OFF 정보를 활용해 게임에서 직접 구현해야 합니다.

프로모션 배지 적용 예시 화면  

배지 정보 포맷

Hive는 배지 정보를 제공하는 프로모션 뷰의 정보를 PromotionBadgeInfo 오브젝트에 각각 담아 배열로 반환합니다. Hive는 배지를 표시해야 하는 대상 프로모션 뷰에 대한 정보만 반환하며, 만약 배지를 표시해야 하는 대상 프로모션 뷰가 없다면 빈 배열을 반환합니다. 다음은 Hive가 반환하는 PromotionBadgeInfo 오브젝트의 구성입니다.

필드명 타입 설명
target Enumerator 배지의 대상 프로모션 뷰
  • `PromotionBadgeTarget.NEWS`: 새소식 페이지
  • `PromotionBadgeTarget.NOTICE`: 공지사항 목록
  • `PromotionBadgeTarget.CUSTOMVIEW`: 커스텀 웹뷰
  • `PromotionBadgeTarget.CUSTOMBOARD`: 커스텀 보드
contentsKey String 배지의 대상 프로모션 뷰가 커스텀 웹뷰나 커스텀 보드 일 때 콘솔에 등록된 식별자. 프로모션 뷰가 새소식 페이지나 공지사항 목록일 때는 null이 리턴됩니다
badgeType String 표시할 배지 종류
  • "new": 기본값. 게임에서 구현하는 형태의 배지 노출 가능

배지 정보 조회하기

배지 정보를 조회하려면 Promotion 클래스의 getBadgeInfo() 메서드를 호출하고, 함수 파라미터로 전달된 콜백 함수를 통해 배지 정보 목록을 받으세요.

다음은 배지 정보를 조회하는 예제 코드입니다.

API Reference: hive.Promotion.getBadgeInfo

using hive;    
    Promotion.getBadgeInfo((ResultAPI result, List<PromotionBadgeInfo> badgeInfoList) => {    
       if (!result.isSuccess()) {    
          return;    
       }    

       // call successful    
       foreach(PromotionBadgeInfo badgeInfo in badgeInfoList) {    
          //TODO:    
          // Display the badge    
       }    
});
#include "HivePromotion.h"

FHivePromotion::GetBadgeInfo(FHivePromotionOnBadgeInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHivePromotionBadgeInfo>& PromotionBadgeInfoList) {
        if (!Result.IsSuccess()) {
                return;
        }

        for (const auto& PromotionBadgeInfo : PromotionBadgeInfoList) {
                // TODO: 배지를 표현하세요
        }
}));

API Reference: Promotion::getBadgeInfo

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    Promotion::getBadgeInfo([=](ResultAPI result, vector<PromotionBadgeInfo> badgeInfoList) {    
        if (!result.isSuccess()) {    
          return;    
       }    
       // call successful    
       for_each(badgeInfoList.begin(), badgeInfoList.end(), [=](PromotionBadgeInfo badgeInfo) {    
          //TODO:    
          // Display the badge    
       }    
});

API Reference: Promotion.getBadgeInfo

import com.hive.Promotion    
    import com.hive.ResultAPI    
    Promotion.getBadgeInfo(object : Promotion.PromotionBadgeInfoListener {    
         override fun onReceiveInfo(result: ResultAPI, badgeInfoList: ArrayList<Promotion.PromotionBadge>?) {    
             if (!result.isSuccess) {    
                 return    
             }    
             badgeInfoList?.forEach {    
                 //TODO:    
                 // Display the badge    
             }    
         }    
})

API Reference: Promotion.INSTANCE.getBadgeInfo

import com.hive.Promotion;    
    import com.hive.ResultAPI;    
    Promotion.INSTANCE.getBadgeInfo((result, badgeInfoList) -> {    
         if (!result.isSuccess()) {    
             return;    
         }    
         // call successful    
         for (Promotion.PromotionBadge badgeInfo : badgeInfoList){    
             //TODO:    
             // Display the badge    
         }    
});

API Reference: PromotionInterface.getBadgeInfo

import HIVEService    
    PromotionInterface.getBadgeInfo() { result, badgeInfoList in    
       if !result.isSuccess() {    
       return    
       }    
       // call successful    
       for (badgeInfo in badgeInfoList) {    
          //TODO:    
          // Display the badge    
       }    
}

API Reference: HIVEPromotion:getBadgeInfo

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEPromotion getBadgeInfo: ^(HIVEResultAPI *result, NSArray<HIVEPromotionBadge *> *badgeInfoList) {    
         if (![result isSuccess]) {    
          return;    
       }    
       // call successful    
       for (HIVEPromotionBadge *badgeInfo in badgeInfoList) {    
          //TODO:    
          // Display the badge    
       }    
}];