(ver 2.29.x) 6.5.2. 고급 설정
목차
개요
이 문서에서 가이드 하는 내용은 BuzzAd Android SDK의 Push 지면의 기능을 설명하고 각 기능을 변경하는 방법을 설명합니다.
Push 구독 설명 다이얼로그 없이 구독 UI 표시
BuzzAd Android SDK에서는 Push 구독을 설명하는 다이얼로그와 구독 시간을 설정하는 다이얼로그를 표시합니다. Push 구독을 설명하는 UI 를 자체적으로 구현하거나 설명하는 UI 없이 구독을 진행할 수 있습니다.
다음은 Push 구독을 설명하는 다이얼로그를 표시하지 않는 방법입니다.
buzzAdPush.registerWithDialog(MyActivity.this, false, new BuzzAdPush.OnRegisterListener() {
@Override
public void onSuccess() {
// 구독 성공 시 호출
}
@Override
public void onCanceled() {
// 구독 실패 시 호출
}
});
Push 구독 UI 자체 구현
BuzzAd Android SDK에서 제공하는 API를 활용하여, Push 구독 절차를 직접 구현할 수 있습니다.
// 버즈빌 서버로부터 구독 가능한 시간을 미리 불러와 저장합니다.
buzzAdPush.fetchPushHoursOptionIfNeeded(
activity,
new PushRepository.OnFetchResultListener() {
@Override
public void onFetchFail() {
// 저장된 구독 가능한 시간이 없다면 SDK에서 기본으로 제공하는 값을 읽어옵니다.
// 단, 저장된 구독 가능한 시간이 없다면 SDK에서 기본으로 제공하는 값을 읽어옵니다.
List<Integer> list = buzzAdPush.getPushHoursOption(MainActivity.this);
}
@Override
public void onFetchSuccess() {
// Step 2
List<Integer> list = buzzAdPush.getPushHoursOption(MainActivity.this);
}
});
구독 가능한 시간중 사용자가 구독을 원하는 시간을 선택하여 설정합니다. 그리고 Push를 구독합니다.
List<Integer> selectedHours = new ArrayList<>();
selectedHours.add(hour); // 0 <= hour < 24
buzzAdPush.setPushHours(activity, selectedHours); // 설정 가능한 시간 중 유저가 선택한 시간을 Push SDK에 등록합니다.
buzzAdPush.register(activity); // 위 단계 설정이 끝나면 Push를 등록하여 활성화합니다.
Push 구독 해지 고도화
SDK에서 제공하는 API를 활용하여, SDK에서 제공하는 UI를 사용하지 않거나 별도의 UI 없이 구독을 해지할 수 있습니다.
Push 구독 상태 확인
구독 여부를 확인하여 UI에 반영할 수 있습니다.
Push Service Notification 자체 구현
푸시 기능이 안정적으로 동작하기 위해서는 서비스(Foreground Service)가 필요합니다.
다른 BuzzAd SDK의 Foreground Service(락스크린 또는 Pop 을 연동할 경우 실행되는 Foreground Service) 가 활성화되면 BuzzAd Push 의 Foreground Service 서비스는 표시되지 않습니다.
PushService
의 상속 클래스를 구현하여 Notification을 변경할 수 있습니다. getFeedPendingIntent()
함수는 Feed로 진입할 수 있는 PendingIntent
를 제공합니다.
다음은 Push Service Notification을 자체 구현하는 방법입니다.
PushService
가 제공하는 API
API | 설명 |
---|---|
| Feed 지면을 보여줄 수 있는 Intent 를 생성합니다.
|
Push Notification 클릭 동작 변경
Push Notification 을 클릭 시 Feed 지면이 보입니다. Feed 지면을 앱의 Launch Activity 에서 보이게 할 수 있습니다. 기본값은 False 이며, False의 경우 Feed 지면이 현재 화면을 덮도록 보입니다. (다른 앱 위에 표시됩니다.)
다음은 Feed 지면을 앱의 Launch Activity 에서 보이게 하는 예시입니다.