APP PUSH
Developers핑거푸시 고객지원
  • 핑거푸시 APP PUSH
  • 이용 가이드
    • 사용자 콘솔 매뉴얼
      • 앱 등록하기
      • 대시보드
      • 메시지 만들기
        • 커스텀 푸시
        • 엑셀 파일 업로드 유의사항
      • 발송 이력 및 발송 리포트
      • 인앱푸시 만들기
      • 통계
      • 앱 설정
    • 플랜별 지원 기능
    • 서비스 신청 및 결제 안내
    • 핑거푸시 라이브 앱
    • 광고성 정보 전송 가이드라인
  • SDK 매뉴얼
    • SDK 다운로드
    • Android SDK 매뉴얼
      • 주요 기능
      • 비공개 키 생성 및 등록
    • iOS SDK 매뉴얼
      • APN 인증 키(.p8) 발급 및 업로드
    • Cordova
    • React Native
    • Flutter
    • 인앱푸시 App 가이드
    • Server2Server
      • 1. 일괄 발송
      • 2. 다수의 대상자 발송
        • 2-1. 메시지 기본 정보 발송
        • 2-2. 수신 대상자 정보 발송
        • 2-3. 메시지 전송 종료 정보 발송
      • 3. 다수의 대상자 발송 (500건 이하)
      • 4. 다수의 대상자 개별 설정값 발송
      • 5. 단일 건 발송
      • 6. 타겟 발송 실패 시 식별자 조회
      • 7. 예약 메시지 취소
      • 8. 부가 서비스-통계
  • API Reference
    • Android API Reference
    • iOS API Reference
  • Agent
    • 에이전트 소개
    • 설치 및 실행
    • 푸시 발송 테스트
    • CJ올리브네트웍스 연동
    • 테이블 설명
Powered by GitBook
On this page
  • Android
  • 플러그인 다운로드
  • 플러그인 적용하기
  • 프로젝트 설정하기
  • Android API Reference
  • iOS
  • 플러그인 다운로드
  • 플러그인 적용하기
  • 프로젝트 설정하기
  • iOS API Refeence
  • 예제 파일 적용
  1. SDK 매뉴얼

Flutter

PreviousReact NativeNext인앱푸시 App 가이드

Last updated 1 month ago

Android

본 가이드는 Flutter 3.29.0, Dart 3.7.0 기준으로 작성되었습니다.

SDK가 지원하는 최소 버전은 Android API 19(Kitkat) 이상입니다.

플러그인 다운로드

1) 플러그인을 다운로드 합니다.

2) 프로젝트 폴더와 같은 경로에 압축을 해제합니다.

플러그인 적용하기

1) 프로젝트 pubspec.yaml 에 'fingerpush_plugin' 을 추가합니다.

fingerpush_plugin 폴더를 상대 경로로 참조하여 추가합니다.

<project>/pubspec.yaml
fingerpush_plugin:
    path: ../fingerpush_plugin/

2) 명령어를 실행하여 플러그인을 적용합니다.

flutter pub get

프로젝트 설정하기

1) 핑거푸시 앱 생성 및 FCM 프로젝트 생성은 Android 매뉴얼을 참고바랍니다.

2) gradle 설정

a. 프로젝트 레벨의 build.gradle 에 'com.google.gms:google-services' 라이브러리를 추가합니다.

<project>/build.gradle
buildscript {
    ...
    
    dependencies {
        ...
        classpath 'com.google.gms:google-services:4.3.10'
    }
}

b. 앱 레벨의 build.gradle 하단에 google-services 플러그인을 추가합니다.

<project>/<app-module>/build.gradle
apply plugin: 'com.google.gms.google-services'

3) AndroidManifest 설정

a. allowBackup 값을 false 로 설정합니다.

AndroidManifest.xml
<application
    ...
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name">
    ...
</application>

b. 푸시 수신을 서비스를 추가합니다.

AndroidManifest.xml
<application>
    ...
    <service
        android:name="com.fingerpush.fingerpush_plugin.IntentService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
</application>

4) MainActivity 설정

인앱푸시를 사용하는 경우 FlutterFragmentActivity 를 상속받습니다.

MainActivity.kt
...
class MainActivity : FlutterFragmentActivity(), MethodCallHandler {

    private lateinit var channel: MethodChannel

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        checkPayload(intent.extras)
    }

    // 푸시 수신 데이터 체크
    private fun checkPayload(data: Bundle?) {
        if (data != null) {
            val jsonObject = JSONObject()
            val payload = data.getBundle("payload")

            val keys = payload?.keySet()
            if (keys != null) {
                for (key in keys) {
                    jsonObject.put(key, payload?.getString(key))
                }
                sendPayload(jsonObject.toString())
            }
        }
    }
    
    private fun sendPayload(payload: String) {
        if (this::channel.isInitialized) {
            channel.invokeMethod("onNotification", payload)
        } else {
            Handler(mainLooper).postDelayed({ sendPayload(payload) }, 200)
        }
    }
    
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        GeneratedPluginRegistrant.registerWith(flutterEngine)
        channel = MethodChannel(flutterEngine.dartExecutor, "FingerPushOnNotification")
        channel.setMethodCallHandler(this@MainActivity)

        if (intent.extras != null) {
            checkPayload(intent.extras)
        }
    }

    override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
        if (call.method.equals("onNotification")) {
            checkPayload(intent.extras)
        }
    }

}

Android API Reference

Android API 는 아래 링크에서 확인 할 수 있습니다.

iOS

본 가이드는 Flutter SDK 3.0.0 기준으로 작성되었습니다.

최소 버전 iOS 10 이상

플러그인 다운로드

1) 플러그인을 다운로드 합니다.

2) 프로젝트 폴더와 같은 경로에 압축을 해제합니다.

플러그인 적용하기

1) 프로젝트 pubspec.yaml 에 'fingerpush_plugin' 을 추가합니다.

fingerpush_plugin 폴더를 상대 경로로 참조하여 추가합니다.

<project>/pubspec.yaml
fingerpush_plugin:
    path: ../fingerpush_plugin/

2) 명령어를 실행하여 플러그인을 적용합니다.

flutter pub get

3) 프로젝트에 'fingerpush_plugin.dart' import 합니다.

import 'package:fingerpush_plugin/fingerpush_plugin.dart';

4) fingerpush_plugin/example/lib/main.dart 파일을 참고하여 플러그인을 적용합니다.

푸시 테스트시에는 반드시 실제 기기를 사용해주세요.

시뮬레이터에서는 핑거푸시를 통해 푸시 수신 받을 수 없습니다.

프로젝트 설정하기

1) Xcode 로 Bundle Identifier 와 Provisioning 변경해주세요.

2) Capability 에 Background Mode 와 Push Notifications 를 추가해주세요.

iOS API Refeence

iOS API 는 아래 링크에서 확인 할 수 있습니다.

예제 파일 적용

예제 파일은 'fingerpush_plugin > example > lib > main.dart' 에서 확인할 수 있습니다

Android SDK 매뉴얼
Android API Reference
iOS API Reference
▶다운로드
▶다운로드