Note
최신 라이브러리는 아래 링크를 통해, 다운로드 받을 수 있습니다. 다운로드 파일은 m_push_plugin과 plugin이 적용된 샘플 프로젝트로 구성되어 있습니다.
버전 | 버전 | 내용 |
---|---|---|
1.0.3 | 2024.07.19 | 샘플 프로젝트 추가 (iOS) MPushLibrary 5.1.6 적용 (Android) morpheus_push_library_5.2.0.16 적용 |
1.0.2 | 2024.06.12 | (Android) basic notification 설정 추가 |
1.0.1 | 2024.05.17 | (iOS) static_framework 설정 변경, MPushLibrary 5.1.3 적용 (Android) setEnabled API 로그 추가 |
1.0.0 | 2024.02.16 | 최초배포 |
설정 파일은 각 프로젝트 환경에 맞게 변경 적용이 필요
dependencies:
flutter:
sdk: flutter
m_push_plugin:
path: ../flutter-push-plugin/m_push_plugin/
flutter 프로젝트에서 상대경로로 m_push_plugin을 설치해야 합니다.
flutter pub get
//반드시, script 맨 하단에 작성
apply plugin: 'com.google.gms.google-services'
dependencies {
classpath 'com.google.gms:google-services:4.4.0'
}
//app 실행 중 푸시 수신시 후처리
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
var notification = intent.getStringExtra("JSON")
val payload = JSONObject()
try {
payload.put("status", "SUCCESS")
payload.put("payload", notification)
} catch (e: JSONException) {
throw java.lang.RuntimeException(e)
}
val map: MutableMap<String, Any> = java.util.HashMap()
val keysItr = payload.keys()
while (keysItr.hasNext()) {
val key = keysItr.next()
var value: Any
value = try {
payload[key]
} catch (e: JSONException) {
throw java.lang.RuntimeException(e)
}
map[key] = value
}
MPushPlugin.channel.invokeMethod("pushMessage", map)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
PushManager.getInstance().setCustomInstance(this, FcmCustomNoti::class.java)
}
예시로 제공한 FcmCustomNoti.java 파일을 적용했을 경우를 기반으로 작성되었으며 해당 파일명은 변경이 가능하며, 변경된 클래스로 설정을 변경할 수 있습니다.
Notification 옵션 항목 및 옵션 적용방법 예시
- NotificationBuilder class
- basic notification을 사용하는 경우 알림 아이콘은 Application 아이콘으로 지정되어 있으며, icon을 변경해야하는 경우 NotificationBuilder를 참고하여 style을 수정해서 전달하는 방법으로 사용하실 수 있습니다.
발송한 메시지의 페이로드 데이터를 수신 한 이후에 별도로 처리해야 하는 영역으로, 아래 첨부파일을 참고하여 자체 비즈니스 규격에 따라 적용하실 수 있습니다.
압축 파일 내의 android 폴더 > FcmNotifyHelper, MessageArrivedReceiver, PushNotificationManager 파일 참고
<application>
<receiver
android:name="[fulepath].MessageArrivedReceiver"
android:exported="false">
<intent-filter>
<!--FCM 사용시 intent-filter-->
<action android:name="${applicationId}.GCM_MESSAGE_ARRIVED" />
<!--------------->
<!--UPNS 사용시 intent-filter -->
<action android:name="${applicationId}.UPNS_MESSAGE_ARRIVED" />
<!--------------->
<!--UPNS+FCM 사용시(아래 intent-filter 모두적용)-->
<action android:name="${applicationId}.GCM_MESSAGE_ARRIVED" />
<action android:name="${applicationId}.UPNS_MESSAGE_ARRIVED" />
<!--------------->
</intent-filter>
</receiver>
</application>
dependencies:
flutter:
sdk: flutter
m_push_plugin:
path: ../flutter-push-plugin/m_push_plugin/
Flutter 프로젝트에서 상대경로로 'm_push_plugin' path를 지정해야 합니다.
flutter pub get
{
"aps": {
"alert": {
"body":"body"
"title":"title"
},
"badge": 1,
"mutable-content": 1,
"sound": "alert.aif"
},
"mps": {
"cuid":"testCUID"
"ext": "8||https://umsapi.morpheus.kr/data/nas/image.png|",
"appid": "com.uracle.push.test",
"psid": "eddf0fb943b8b13e4ee9b3268e7854b59a43f2c63d99f1a405b0a2383cf55718"
"pushkey": "fa0ef0f129cb4cd1addbdb2984fb655d042eb74d"
"seqno": "1247292",
"sender": "admin",
"senddate": "2024022309",
"db_in": "Y"
}
}
푸시 관련 기능을 제공한다.
Arguments
Example:
mPush.registerServiceAndUser({
"cuid": "tester",
"name": "testerName"
}).then((result) {
print(result.toString());
});
Arguments
Example:
mPush.unregisterService().then((result) {
print(result.toString());
});
Arguments
Example:
mPush.unregisterUser().then((result) {
print(result.toString());
});
Arguments
Example:
mPush.sendNotification({
"cuid": 'tester',
"serviceCode": 'ALL',
"message": '기본알림입니다.'
}).then((result) {
print(result.toString());
});
Arguments
mPush.readNotification({
"notification": noti
}).then((result) {
print(result.toString());
});
Arguments
Example:
mPush.remoteSetBadge({
"badge": 10
}).then((result) {
print(result.toString());
});
Arguments
Example:
mPush.notificationCenterSetBadgeNumber({
"badge": 10
}).then((result) {
print(result.toString());
});
Arguments
Example:
mPush.notificationCenterGetBadgeNumber().then((result) {
print(result.toString());
});