버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

목차

...

안내사항

...

코드 블럭
// build.gradle
android {
    ...
    ...
}

dependencies {
   // implementation files('libs/캐시버튼_SDK_파일명.aar')
    implementation files('libs/avatye_cashbutton_v1.2.0.aar')
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72'
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0-alpha03'
    implementation 'com.google.android.gms:play-services-basement:17.4.0'
    implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
    implementation 'joda-time:joda-time:2.10.5'
    implementation 'com.google.zxing:core:3.4.0'
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
    /** Buzzvill sdk */
    implementation("com.buzzvil:buzzad-benefit:2.9.1") {
        exclude group: 'com.buzzvil', module: 'buzzad-benefit-pop'
        exclude group: 'com.buzzvil', module: 'buzzad-benefit-notification'
    }
    /** mobon sdk */
    implementation('com.mobon.sdk:com.mobon.sdk:1.0.4.18') {
        transitive = true
        exclude group: 'com.google.android.gms'
    }
    /** service-channeltalk */
    implementation ('com.zoyi.channel:plugin-android:7.2.0'){
        exclude group: "androidx.gridlayout", module: 'gridlayout'
    }
    
    /** igaworks ssp sdk & mediation */
    implementation 'com.igaworks.ssp:IgawAdPopcornSSP:2.34.72'

    /** ad-mediation-group (unityads,adcolony,vungle,fyber,facebook) */
    implementation 'com.unity3d.ads:unity-ads:3.4.8'
    implementation 'com.adcolony:sdk:4.2.2'
    implementation 'com.vungle:publisher-sdk-android:6.7.1'
    implementation "com.fyber.vamp:core-sdk:7.7.2"
    implementation "com.fyber.vamp:video-kit:7.7.2"
    implementation "com.fyber.vamp:mraid-kit:7.7.2"
    implementation 'com.facebook.android:audience-network-sdk:6.2.0'
    implementation "com.kakao.adfit:ads-base:3.4.0"

    /** androidx.appcompat:appcompat:x.x.x 을 사용하고 있지 않을 경우 추가 필요 */
    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
}

...

항목

코드

호출위치

세부내용

캐시버튼 SDK 초기화

  • CashButtonConfig.initialize()

  • CashNotifyModel()

CashButtonConfig.initializer(
Application application,
CashButtonPosition position,
CashNotifyModel notifyModel
)

  • Application Class

    • onCreate()

참고사항

Application Class를 사용하고 있지 않았다면, 캐시버튼 SDK 연동을 위해 AndroidManifest.xml에 해당 Application Class를 생성하고 등록해야 합니다.

  • parameters

    • application : Application context를 this로 입력합니다.

    • position : 캐시 버튼의 위치

      • CashButtonPosition.END : 오른쪽

      • CashButtonPosition.START : 왼쪽

    • notifyModel : 노티바 설정값 (아래 CashNotifyModel 참고)

CashNotifyModel(
Context context,
boolean allowNotify,
String name,
int appIconResourceId,
int statusIconResourceId
)

  • Application Class

    • onCreate()

      • CashButtonConfig.initialize()

CashButtonConfig.initialize() 함수에 들어가는 데이터 클래스

  • parameters

    • context : activity context를 this로 입력합니다.

    • allowNofity : 노티바 노출을 설정합니다.

      • true : 노티바 노출

      • false : 노티바 미노출

    • name : 앱의 이름을 입력합니다.

    • appIconResourceId : 노티바 아이콘 리소스 id

      • 0 → 캐시버튼의 기본 아이콘 노출

    • statusIconResourceId : 상단 상태바 아이콘 리소스 id

      • 0 → 캐시버튼의 기본 아이콘 노출

캐시버튼 SDK 시작

  • CashButtonLayout.init()

CashButtonLayout.init(
Activity activity,
ICashButtonListener callback
)

  • 앱의 메인 액티비티에 추가

  • MainActivity

    • onCreate()

  • parameters

    • activity : activity를 this로 입력합니다. (별도 변수로 전달 해도 무방)

    • callback : 결과 Interface

      • onSuccess(CashButtonLayout cashbuttonLayout)

정보

onCreate() → setContentView(…) 후에 위치해야 하며, 해당 함수 마지막에 위치 바랍니다.

캐시버튼 Dock 상태

  • CashButtonLayout.init() → cashButtonLayout View

boolean cashButtonLayout.getDockState()

  • CashButtonLayout.init()

    • callback 으로 전달된 cashbuttonLayout

  • return type - boolean

    • true → EXPANDED(확장)

    • false → HIDDEN(감춤)

void cashButtonLayout.setDockState(boolean isExpanded)

  • parameters - boolean

    • isExpanded

      • true → EXPANDED(확장)

      • false → HIDDEN(감춤)

캐시버튼 Visibility

  • CashButtonLayout.init() → cashButtonLayout View

void setCashButtonHide()

  • CashButtonLayout.init()

    • callback 으로 전달된 cashbuttonLayout

CashButton → Visible.Gone

void setCashButtonShow()

CashButton → Visible.View

Application

참고사항

Application Class 초기화 되지 않을 경우 앱 실행에 문제가 발생합니다.
Android 5.0(API 수준 21) 미만의 경우 Multidex 적용이 필요합니다.

코드 블럭
languagejava
// App
public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ...
        /** cash-button initializer */
        CashNotifyModel notifyModel = new CashNotifyModel(this, true, "앱명", 0, 0);
        CashButtonConfig.initializer(this, CashButtonPosition.END, notifyModel);
    }
}
// AndroidManifest.xml
<manifest ... >
    <application
          android:name=".App"
          ...
          ...
</manifest>

...

정보

메인으로 사용되는 액티비티에 설정 합니다.
onCreate() → setContentView(…) 후에 위치해야 합니다.
setContentView(…) 를 통한 Layout 설정 완료 후 설정되어야 합니다.
callback::onSuccess() → callback 이벤트를 통한 앱 로직을 추가 하지 마세요.

코드 블럭
languagejava
// MainActivity.java
// imports
import com.avatye.sdk.cashbutton.ICashButtonBackPressedListener;
import com.avatye.sdk.cashbutton.ICashButtonCallback;
import com.avatye.sdk.cashbutton.ui.CashButtonLayout;
...
  
    private CashButtonLayout cashButton;

    @override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        setContentView(...)
        ...
        CashButtonLayout.init(this, new ICashButtonCallback() {
            @Override
            public void onSuccess(CashButtonLayout cashButtonLayout) {
                cashButton = cashButtonLayout;
            }
        });
    }
    
    // option
    @Override
    public void onBackPressed() {
        if (cashButton != null) {
            cashButton.onBackPressed(new ICashButtonBackPressedListener() {
                @Override
                public void onBackPressed(boolean b) {
                    if(b) {
                        finish();
                    }
                }
            });
        }
    }
...

...