# 인앱푸시 App 가이드

{% hint style="info" %}
인앱푸시를 사용하기 위해서는 단말기 등록이 되어야 합니다. 매뉴얼을 참고 바랍니다.
{% endhint %}

{% content-ref url="android" %}
[android](https://developers.fingerpush.com/app-push/sdk-manual/android)
{% endcontent-ref %}

{% content-ref url="ios" %}
[ios](https://developers.fingerpush.com/app-push/sdk-manual/ios)
{% endcontent-ref %}

{% hint style="warning" %}
태그, 식별자 대상 인앱 메시지 기능을 사용하려면 iOS, Android SDK 3.7.7 이상 버전을 사용해야 합니다.
{% endhint %}

## showInAppPush

* 등록된 모든 메시지를 노출합니다. 메시지 노출 우선 순위는 식별자 > 태그 > 일반 순입니다.

### Android

```java
FingerPushManager.getInstance(Context).showInAppPush(onCampaignClickListener)
```

{% code title="예제" %}

```java
FingerPushManager.getInstance(Context).showInAppPush(new onCampaignClickListener() {

    @Override
    public void onClick(JSONObject jsonObject) {
        Log.i("T", "onClick : " + jsonObject.toString());
    }

    @Override
    public void onFailed() {
        Log.i("T", "onFailed");
    }

    @Override
    public void onNotToday(JSONObject jsonObject) {
        Log.i("T", "onNotToday : " + jsonObject.toString());
    }

    @Override
    public void onClose(JSONObject jsonObject) {
        Log.i("T", "onClose : " + jsonObject.toString());
    }

});
```

{% endcode %}

### iOS

```objectivec
– (void)showInAppPush : (id)viewController closeEvent: (FingerBlock)block;
```

{% code title="Enum 상수 설명" %}

```objectivec
// 인앱 메시지 클릭 시 상태를 나타내는 열거형
typedef enum {
    kInAppOnClick,              // 인앱 메시지 클릭 시
    kInAppNotToday,             // 하루동안 보지않기 버튼 클릭 시
    kInAppClose,                // 닫기 버튼 클릭 시
    kInAppFail,                 // 인앱 메시지 불러오기 실패
} FINGER_IN_APP_CLOSED_EVENT;
```

{% endcode %}

{% code title="예제" %}

```objectivec
[[finger sharedData] showInAppPush:self closeEvent:^(NSDictionary *msg, FINGER_IN_APP_CLOSED_EVENT event, NSError *error) {
        NSLog(@"popupInAppPush ====> \n%@ \n %u %@ ",msg, event,error);
        if(event == kInAppOnClick) {
            // 인앱 메시지 클릭 시 처리
        }
}];
```

{% endcode %}

## showInAppPushDeft

* 등록된 메시지 중 일반, 태그 메시지를 노출합니다. 메시지 노출 우선 순위는 태그 > 일반 순입니다.

### Android

```java
FingerPushManager.getInstance(Context).showInAppPushDeft(onCampaignClickListener)
```

{% code title="예제" %}

```java
FingerPushManager.getInstance(Context).showInAppPushDeft(new onCampaignClickListener() {

    @Override
    public void onClick(JSONObject jsonObject) {
        Log.i("T", "onClick : " + jsonObject.toString());
    }

    @Override
    public void onFailed() {
        Log.i("T", "onFailed");
    }

    @Override
    public void onNotToday(JSONObject jsonObject) {
        Log.i("T", "onNotToday : " + jsonObject.toString());
    }

    @Override
    public void onClose(JSONObject jsonObject) {
        Log.i("T", "onClose : " + jsonObject.toString());
    }

});
```

{% endcode %}

### iOS

```objectivec
– (void)showInAppPushDeft : (id)viewController closeEvent: (FingerBlock)block;
```

{% code title="예제" %}

```objectivec
[[finger sharedData] showInAppPushDeft:self closeEvent:^(NSDictionary *msg, FINGER_IN_APP_CLOSED_EVENT event, NSError *error) {
        NSLog(@"popupInAppPush ====> \n%@ \n %u %@ ",msg, event,error);
        if(event == kInAppOnClick) {
            // 인앱 메시지 클릭 시 처리
        }
}];
```

{% endcode %}

## showInAppPushTarget

* 등록된 메시지 중 Target(식별자) 메시지만 노출합니다.

### Android

```java
FingerPushManager.getInstance(Context).showInAppPushTarget(onCampaignClickListener)
```

{% code title="예제" %}

```java
FingerPushManager.getInstance(Context).showInAppPushTarget(new onCampaignClickListener() {

    @Override
    public void onClick(JSONObject jsonObject) {
        Log.i("T", "onClick : " + jsonObject.toString());
    }

    @Override
    public void onFailed() {
        Log.i("T", "onFailed");
    }

    @Override
    public void onNotToday(JSONObject jsonObject) {
        Log.i("T", "onNotToday : " + jsonObject.toString());
    }

    @Override
    public void onClose(JSONObject jsonObject) {
        Log.i("T", "onClose : " + jsonObject.toString());
    }

});
```

{% endcode %}

### iOS

```objectivec
– (void)showInAppPushTarget : (id)viewController closeEvent: (FingerBlock)block;
```

{% code title="예제" %}

```objectivec
[[finger sharedData] showInAppPushTarget:self closeEvent:^(NSDictionary *msg, FINGER_IN_APP_CLOSED_EVENT event, NSError *error) {
        NSLog(@"popupInAppPush ====> \n%@ \n %u %@ ",msg, event,error);
        if(event == kInAppOnClick) {
            // 인앱 메시지 클릭 시 처리
        }
}];
```

{% endcode %}

## 인앱 메시지 결과 데이터 구조

{% code title="인앱 메시지 데이터" %}

```java
{
    "m_bgcolor":"",
    "m_fontcolor":"",
    "m_img_link":"https:\/\/mi.fingerpush.com\/upload\/push\/20220325\/20220325191728(0).jpeg",
    "m_android_sound":"",
    "c_idx":"4",
    "m_idx":"16",
    "m_msg":"",
    "vmode":"BA",
    "m_title":"cmap2-고기",
    "m_link_url":"http:\/\/m.daum.net",
    "m_ios_sound":"",
    "data1":"aaa",
    "data2":"bbb",
    "data3":"ccc"
}
```

{% endcode %}
