Hive는 Hive 푸시 서버에 관계 없이 게임 클라이언트에서 단말에 푸시를 등록하여 게임 알람으로 사용할 수 있는 기능을 제공하며 이를 로컬 푸시라고 합니다. 로컬 푸시 기능에 대해 Hive는 로컬 푸시 등록과 로컬 푸시 해제 기능을 제공합니다. 로컬 푸시는 앱을 종료해도 정해진 시간에 통지가 발생하게 되고 등록된 로컬 푸시는 필요에 따라 해지할 수 있습니다.

로컬 푸시 정보

Hive는 로컬 푸시 정보에 대해 다음의 정보를 담아 LocalPush 클래스에 정의합니다.

Name Type Description
noticeId Integer 로컬 푸시 메시지 식별자
title String 로컬 푸시 메시지 제목
msg String 로컬 푸시 메시지 내용
after Integer 푸시 등록 후 몇 초 후에 푸시 메시지를 띄울 것인지를 의미(초 단위, 기본값=0)
groupId String 알림 그룹을 위한 그룹 ID값입니다. 알림 그룹이란 같은 앱에서 보낸 알림들은 같은 그룹으로 묶어서 기기 화면에 표시하는 기능입니다. 이 값을 설정하지 않으면 로컬 푸시 메세지 그룹은 기본 앱 그룹으로 설정됩니다.

등록하기

유저의 단말기에 로컬 푸시를 등록하려면 Push 클래스의 registerLocalPush() 메서드를 호출하세요.

iOS에서는 최대 64개의 로컬 푸시를 등록할 수 있으며, 기기 및 OS 버전에 따라 64개 미만으로 등록 수량이 제한되기도 합니다. 사용 환경별 최대 등록 가능 수량을 초과하는 경우에는 이전에 등록된 푸시들이 자동으로 등록 취소됩니다. (참조)

다음은 로컬 푸시를 등록하는 예제입니다.

Unity®

API Reference: hive.Push.registerLocalPush

C++

API Reference: Push::registerLocalPush

Kotlin

API Reference: registerLocalPush

Java

API Reference: com.hive.Push.registerLocalPush

Swift

API Reference: registerLocalPush(_:handler:)

Objective-C

API Reference: Objective-C

해제하기

등록해 놓은 푸시를 설정해 놓은 알림 시간 전에 해제할 수 있습니다.

단일 로컬 푸시 등록 해제
아래의 API를 사용하여 등록했던 푸시 식별자를 파라미터로 설정하고 로컬 푸시를 해제하세요.

Unity®

API Reference: hive.Push.unregisterLocalPush

C++

API Reference: Push::unregisterLocalPush

Kotlin

API Reference: Push.unregisterLocalPush

Java

API Reference: com.hive.Push.unregisterLocalPush

Swift

API Reference: PushInterface.unregisterLocalPush

Objective-C

API Reference: HIVEPush::unregisterLocalPush

목록상 로컬 푸시 일괄 등록 해제
아래의 API를 사용하면 등록된 로컬 푸시 식별자 목록을 작성하여 일괄 등록 취소할 수 있습니다.

Unity®

API Reference: hive.Push.unregisterLocalPushes

C++

API Reference: Push::unregisterLocalPushes

Kotlin

API Reference: Push.unregisterLocalPushes

Java

API Reference: com.hive.Push.unregisterLocalPushes

Swift

API Reference: PushInterface.unregisterLocalPushes

Objective-C

API Reference: HIVEPush::unregisterLocalPushes

모든 로컬 푸시 등록 해제
아래의 API를 사용하면 Hive 로컬 푸시 뿐만 아니라 수신 대기 중인 모든 로컬 푸시의 등록을 해제할 수 있습니다.

Unity®

API Reference: hive.Push.unregisterAllLocalPushes

C++

API Reference: Push::unregisterAllLocalPushes

Kotlin

API Reference: Push.unregisterAllLocalPushes

Java

API Reference: com.hive.Push.unregisterAllLocalPushes

Swift

API Reference: PushInterface.unregisterAllLocalPushes

Objective-C

API Reference: HIVEPush::unregisterAllLocalPushes

UI 커스터마이징(Android용)

Android에서는 로컬 푸시를 커스터마이징할 수 있습니다. 커스터마이징 하는 UI 요소에 대한 정보는 로컬 푸시를 등록하는 registerLocalPush() 메서드의 LocalPush 파라미터에 푸시 설정 정보와 함께 설정합니다.

로컬 푸시 UI 정보

로컬 푸시 UI 커스터마이즈 정보는 로컬 푸시 설정 정보를 정의하는 LocalPush 클래스에 함께 정의됩니다. 다음의 표는 LocalPush 클래스의 필드 중 변경할 수 있는 UI 요소들에 대한 필드를 정의합니다.
상세 정보가 제공되는 필드명은 링크가 제공됩니다. 필드명을 클릭해 상세 정보나 스크린샷을 확인해 보세요.

Name Type Description Required
type String 푸시 메시지의 다이얼로그 형태:

  • "bar": 노티 바에만 알림 띄우기
  • "popup": 팝업으로만 알림 띄우기
  • "bar,popup": 노티 바와 팝업 두 형태 모두로 알림 띄우기
필수
bigmsg String Android 알림 창에 보여주는 알림 내용. 길이 제한 없음.
주의: Android Jelly Bean 이상에서 사용 가능
선택
ticker String 푸시 알림 메시지 티커 선택
icon String 푸시 알림에 띄우는 아이콘의 파일 경로. /res/drawable 디렉토리 내에 있는 파일의 확장자를 제외한 파일 이름.
예. 파일의 경로가 res/drawable-xhdpi/hive_icon.png 일 때 icon 필드 값은 "hive_icon" 입니다.
icon을 별도로 제공하지 않으면 디폴트 아이콘인 게임 아이콘이 나타납니다.
선택
sound String 푸시 알림 발생 시 울릴 사운드 파일 경로.
사운드를 별도로 제공하지 않으면 디폴트 알림 사운드가 울립니다.
선택
active String 유저가 푸시를 눌렀을 때의 동작 설정:

  • "app": 게임 앱을 실행 (디폴트)
  • "web:<이동할 URL>": 명시한 URL로 이동
선택
broadcastAction String 푸시 알림이 발생했을 때 broadcasting할 액션 값 선택
buckettype Integer 푸시 알림 디스플레이 타입:

  • 0: Overwrite (디폴트)
  • 1: Inboxing
  • 2: 이어쓰기
선택
bucketsize Integer 알림 창에 묶어서 보여줄 동일 푸시 ID에 대한 메시지 개수 선택
bigpicture String Android 알림 창에 보여주는 이미지 파일 경로

선택
icon_color String 아이콘의 배경색
형식: {"r":[0–255],"g":[0–255],"b":[0–255]}
예: {"r":0,"g":128,"b":255}
주의: Android Lollipop (5.0) 이상에서 사용 가능
선택
type 필드

type 필드는 푸시 메시지의 다이얼로그 형태를 의미합니다. 다이얼로그 형태는 푸시 메시지를 화면에 어떻게 나타낼 지를 정의합니다.

푸시 메시지 다이얼로그 형태로는 다음의 세 가지 선택이 가능합니다:

  • 바 타입: 화면 상단에 나타나며 icon, title, message로 구성됨. 단말기 화면이 꺼져 있으면 나타나지 않음
  • 팝업 타입: 토스트 형식으로 화면에 나타남
  • 모두: 바 타입과 팝업 타입 동시에 화면에 나타남

팝업 타입이나 바 타입과 팝업 타입 모두 제공할 때, 만약 단말기 화면이 꺼져 있는 상태라면, 위의 스크린샷에서와 같이 팝업만 제공됩니다.

bigmsg 필드와 bigpicture 필드

다음 그림은 빅 메시지와 빅 픽쳐가 알림창에 나타나는 모습을 보여주고 있습니다.

  • bigmsg 필드를 이용하면 알림 창에 많은 양의 텍스트를 노출할 수 있습니다. bigmsg 필드를 이용할 때 ticker를 함께 이용할 수 있습니다.
  • bigpicture 필드를 이용하면, 알림 창에 큰 그림을 노출할 수 있습니다.
  • bigpicture를 이용할 때 bigmsg를 함께 이용할 수 없습니다.
  • bigpicture를 이용할 때 ticker를 함께 이용할 수 없습니다.
buckettype 필드

buckettype 필드 값이 1이거나 2이면 동일 푸시 ID에 여러 건의 푸시 알림이 발생했을 때, 알림 창에 알림들을 한 섹션에 누적하여 출력하게 합니다.

  • bucketsize는 알림 창에 몇 개의 메시지가 보이게 노출하는 지를 의미합니다.
  • buckettype 값이 1이면, 즉 Inboxing 타입일 때 메시지가 한 줄을 넘으면 생략 부호(…)를 넣어 화면을 넘어가는 내용은 출력하지 않습니다.
  • buckettype 값이 2이면, 많은 양의 텍스트를 그대로 출력합니다.
  • buckettype 이용 시 ticker를 함께 이용할 수 있습니다.

Facebook Cloud Game 알림 전송하기 (Android용)

Facebook Cloud Game 빌드에서 Hive SDK의 로컬 푸시 기능을 통해 페이스북에서 제공하는 알림(Facebook App To User Notifications) 기능을 사용할 수 있습니다.
페이스북 알림 기능의 경우 Android의 일반적인 Push와 다르게 전달되는 형태와 제약사항이 존재합니다. Facebook App To User Notifications 페이지에서 자세한 내용을 확인 바랍니다.

그리고 페이스북 알림 기능은 페이스북에서 지속 업데이트되고 있고 동작의 변경사항이 발생하고 있습니다. 페이스북 알림 기능이 온전히 정착하기까지 Hive SDK에서 지속 업데이트 예정입니다.
(Hive v4.16.1은 Facebook App To User Notifications 의 22년 10월 반영 사항을 적용 및 검증하였습니다.)

페이스북 알림 기능에 필요한 데이터는 LocalPush 클래스에 정의해야 합니다. 다음 표는 LocalPush 클래스의 필드 중 페이스북 알림 기능에 필요한 요소를 정의합니다.

NAME TYPE DESCRIPTION REQUIRED
title String – 로컬 푸시 메시지 제목

– 1~30 사이의 글자 수 필수 설정

– Hive 4.16.1 기준 title 값을 필수이나 페이스북 UI에서 사용되는 곳이 확인되지 않음

필수
msg String – 로컬 푸시 메시지 내용

– 10~180 사이의 글자 수 필수 설정

– 알림에서 메시지로 노출됨

필수
after Integer – 푸시 등록 후 몇 초 후에 푸시 메시지를 띄울 것인지를 의미(초 단위, 기본값=0)
– 최대 10일 이하의 시간 값(초) 설정
필수
bigpicture String – 이미지 설정 필수
– 크기 300×200 px
– 용량 10MB 이하
– 웹 링크로 게시된 이미지인 경우 http 혹은 https로 시작되는 url
(ex : https://hive-fn.qpyou.cn/hubweb/hive_img/U/P/122349090/20151028/82f610b6f4590863934cefb2b875c87a.jpg)
– 프로젝트 리소스에 포함된 이미지 파일인 경우 /res/drawable 이하에 파일 포함 필요하며 파일 이름이 fbcloudtest.png라면 fbcloudtest만 값으로 입력(파일 이름만)
필수

알림이 도착하면 Facebook 웹 페이지 및 앱에서 아래와 같이 알림 내용이 노출됩니다.

  • 게이밍 페이지 중앙에 노출된 형태
  • 게이밍 페이지 좌측 목록의 알림 메뉴에서 확인되는 형태
  • 페이스북 앱에서 알림이 노출된 형태
  •