Android
본 가이드는 Flutter SDK 3.0.0 기준으로 작성되었습니다.
SDK가 지원하는 최소 버전은 Android API 19(Kitkat) 이상입니다.
플러그인 다운로드
1) 플러그인을 다운로드 합니다.
▶다운로드
2) 프로젝트 폴더와 같은 경로에 압축을 해제합니다.
플러그인 적용하기
1) 프로젝트 pubspec.yaml 에 'fingerpush_plugin' 을 추가합니다.
fingerpush_plugin 폴더를 상대 경로로 참조하여 추가합니다.
fingerpush_plugin:
path: ../fingerpush_plugin/
2) 명령어를 실행하여 플러그인을 적용합니다.
프로젝트 설정하기
1) 핑거푸시 앱 생성 및 FCM 프로젝트 생성은 Android 매뉴얼을 참고바랍니다.
2) gradle 설정
a. 프로젝트 레벨의 build.gradle 에 'com.google.gms:google-services' 라이브러리를 추가합니다.
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 로 설정합니다.
<application
...
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name">
...
</application>
b. 푸시 수신을 서비스를 추가합니다.
<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 를 상속받습니다.
...
class MainActivity : FlutterFragmentActivity(), MethodCallHandler {
private lateinit var channel: MethodChannel
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
checkPush(intent.extras)
}
// 푸시 읽음 처리
fun checkPush(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))
}
channel.invokeMethod("onNotification", jsonObject.toString())
}
}
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
GeneratedPluginRegistrant.registerWith(flutterEngine)
channel = MethodChannel(flutterEngine.dartExecutor, "FingerPushOnNotification")
channel.setMethodCallHandler(this@MainActivity)
}
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
if (call.method.equals("onNotification")) {
checkPush(intent.extras)
}
}
}
Android API Reference
Android API 는 아래 링크에서 확인 할 수 있습니다.
iOS
본 가이드는 Flutter SDK 3.0.0 기준으로 작성되었습니다.
최소 버전 iOS 10 이상
플러그인 다운로드
1) 플러그인을 다운로드 합니다.
▶다운로드
2) 프로젝트 폴더와 같은 경로에 압축을 해제합니다.
플러그인 적용하기
1) 프로젝트 pubspec.yaml 에 'fingerpush_plugin' 을 추가합니다.
fingerpush_plugin 폴더를 상대 경로로 참조하여 추가합니다.
fingerpush_plugin:
path: ../fingerpush_plugin/
2) 명령어를 실행하여 플러그인을 적용합니다.
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' 에서 확인할 수 있습니다