Push는 두 가지 방법으로 Register/Unregister 를 할 수 있습니다.
Default dialog - SDK 에서 제공하는 Register/Unregister dialog 사용
Custom view - SDK 에서 제공하는 Register/Unregister 함수 사용
두가지 방법 모두 Customize 할 수 있으며 방법은 아래에 소개합니다.
Index
1. Default dialog - SDK 에서 제공하는 Register/Unregister dialog customize
Step 1. PushDialogConfig 설정
colorConfirm
: 확인버튼 색상 color resource idcolorCancel
: 취소버튼 색상 color resource idimageRegisterLogo
: register dialog 로고 이미지 drawable resource idimageUnregisterLogo
: unregister dialog 로고 이미지 drawable resource id
final PushDialogConfig pushDialogConfig = new PushDialogConfig.Builder() .colorConfirm(R.color.colorAccent) .colorCancel(R.color.colorPrimary) .imageRegisterLogo(R.drawable.benefit_push_dialog_image_logo) .imageUnregisterLogo(R.drawable.benefit_push_dialog_image_logo) .build(); private BuzzAdPush initBuzzAdPush() { return new BuzzAdPush( App.UNIT_ID_PUSH, CustomNotificationWorker.class, pushDialogConfig ); } BuzzAdPush buzzAdPush = initBuzzAdPush();
Step 2. Dialog Text 변경 (Optional)
Text 는 기본으로 제공되며, 필요한 경우 아래와 같은 방법으로 변경이 가능합니다.
./res/values-ko/strings.xml
에 Push 관련 string 을 같은 id 로 입력하면 dialog text 가 변경됩니다.
Push 설명 Dialog <string name="benefit_push_settings_dialog_register_step_1_title">리워드 광고 구독하기</string> <string name="benefit_push_settings_dialog_register_step_1_message">원하는 시간대에 놓치는 리워드 광고를 모아서 참여할 수 있는 기능입니다. 간편하게 구독하고 푸짐한 리워드 받아가세요! 광고가 없는 경우에는 알림이 가지 않습니다.</string> <string name="benefit_push_settings_dialog_register_step_1_confrim">다음</string> <string name="benefit_push_settings_dialog_register_step_1_cancel">나중에 하기</string> Push register (시간설정) Dialog <string name="benefit_push_settings_dialog_register_step_2_title">구독 시간을 선택해 주세요</string> <string name="benefit_push_settings_dialog_register_step_2_subscribe_all">모두 구독</string> <string name="benefit_push_settings_dialog_register_step_2_confrim">완료</string> <string name="benefit_push_settings_dialog_register_step_2_cancel">나중에 하기</string> Push unregister Dialog <string name="benefit_push_settings_dialog_unregister_title">구독을 취소합니다</string> <string name="benefit_push_settings_dialog_unregister_message">지금 구독을 취소하면 더 이상 리워드 광고 구독하기 알림을 받아볼 수 없습니다. 취소 하시겠습니까?</string> <string name="benefit_push_settings_dialog_unregister_confrim">구독 취소</string> <string name="benefit_push_settings_dialog_unregister_cancel">나중에 하기</string>
Step 3. registerWithDialog/unregisterWithDialog 사용
이 방법을 사용하면 Push 에서 제공하는 Default Dialog 를 사용해서 간단하게 register/unregister 를 구현 가능합니다.
Register
Push register dialog 는 두개의 dialog 로 구성돼있습니다. 첫 번째는 Push 설명 Dialog, 두 번째는 Push 설정 Dialog.
registerWithDialog(Activity, OnRegisterListener)
registerWithDialog(Activity, showPushDescription, OnRegisterListener)
(Optional) 설명 Dialog 가 필요하지 않은 경우 registerWithDialog
의 showPushDescription
파라미터를 false 로 설정하면 됩니다.
buzzAdPush.registerWithDialog(activity, new BuzzAdPush.OnRegisterListener() { @Override public void onSuccess() { switchAdNotiRegister.setChecked(true); } @Override public void onCanceled() { switchAdNotiRegister.setChecked(false); } });
Unregister
Unregister 확인 Dialog 를 보여주며 유저선택에 따라 unregister 합니다
unregisterWithDialog(Activity, OnRegisterListener)
buzzAdPush.unregisterWithDialog(activity, new BuzzAdPush.OnRegisterListener() { @Override public void onSuccess() { } @Override public void onCanceled() { } });
2. Custom view - SDK 에서 제공하는 Register/Unregister dialog customize
이 방법은 Default 로 제공하는 Register Dialog 를 사용하지 않고, 직접 View 를 그리고 싶은 경우 사용합니다.
아래 함수들을 차례로 사용합니다.
Register
Step 1.
buzzAdPush.fetchPushHoursOptionIfNeeded
: 설정 가능한 시간을 서버로부터 받아옵니다.
Step 2.
buzzAdPush.getPushHoursOption
: fetch 후 설정 가능한 시간을 읽어옵니다. (fetch 에 실패해도 이 함수를 호출하면 Push에서 default 로 제공하는 값을 사용할 수 있습니다.)
// Step 1 buzzAdPush.fetchPushHoursOptionIfNeeded( activity, new PushRepository.OnFetchResultListener() { @Override public void onFetchFail() { // Step 2. fetch 에 실패해도 Push에서 default 로 제공하는 값을 사용할 수 있습니다 List<Integer> list = buzzAdPush.getPushHoursOption(MainActivity.this); } @Override public void onFetchSuccess() { // Step 2 List<Integer> list = buzzAdPush.getPushHoursOption(MainActivity.this); } });
Step 3.
buzzAdPush.setPushHours
: 설정 가능한 시간 중 유저가 선택한 시간을 Push SDK 에 등록합니다.
Step 4.
buzzAdPush.register
: 위 단계 설정이 끝나면 Push 를 등록하여 활성화합니다.
List<Integer> result = new ArrayList<>(); ... result.add(hour); ... // Step 3 buzzAdPush.setPushHours(activity, result); // Step 4 buzzAdPush.register(activity);
Unregister
Step 5.
buzzAdPush.unregister
: Push 를 등록 해지 합니다.
buzzAdPush.unregister(activity);