푸시 알림 데이터 이용
푸시 알림 메시지가 수신되거나 사용자에 의해 탭될 때 호출되는 메쏘드와 해당 상황에서 데이터를 추출하여 이용하는 방법에 대해 안내합니다.
딥링크 데이터 이용시 주의사항
앱이 포그라운드 상태일 때
// FirebaseMessagingService를 상속받아 구현한 FcmService
public class FcmService extends FirebaseMessagingService {
// =======================================================
// Start : Push 토큰 수집
// =======================================================
@Override
public void onNewToken(String token) {
super.onNewToken(token);
// call Wisetracker API
DOT.setPushToken(token);
}
// =======================================================
// End : Push 토큰 수집
// =======================================================
// =======================================================
// Start : Push 메시지 수신
// =======================================================
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
// call Wisetracker API
DOT.setPushClick(getApplicationContext(), remoteMessage.toIntent());
// =======================================================
// Start : 필요한 데이터 추출하기 <-- 새로 추가된 부분
// =======================================================
Map<String, String> rootDict = remoteMessage.getData();
String jsonDict = rootDict.get("RW_push_payload_WP");
Log.d("PUSH", "jsonDict : " + jsonDict);
// =================
// intent 로부터 와이즈트래커를 통해 발송된 푸시 알림 메시지내부의 데이터를
// 추출하는 방법을 예시로 들었습니다.
// 여기서는 Gson 라이브러리를 사용했는데요,
// 고객님이 사용하시는 JSON 라이브러리를 사용하시면 됩니다.
// =================
Map dict = new Gson().fromJson(bundle.getString("RW_push_payload_WP"), Map.class);
if (dict != null) {
String title = (String) dict.get("RW_push_payload_TT");
String body = (String) dict.get("RW_push_payload_BD");
String deepLink = (String) dict.get("RW_push_payload_deeplink");
// =================
// 여기에서 필요한 데이터를 추출했습니다.
// 필요한 용도에 맞게 사용하시면 됩니다.
// ex: deepLink 데이터를 이용하여 화면전환을 하실 수 있어요.
// =================
Log.d("PUSH", "title: " + title + ", body: " + body + ", deepLink: " + deepLink);
} else {
Log.d("PUSH", "dictionary was NULL, intent.getData(): " + intent.getData() + ", intent.getExtras(): " + intent.getExtras());
}
// =======================================================
// End : 필요한 데이터 추출하기
// =======================================================
}
// =======================================================
// End : Push 메시지 수신
// =======================================================
}jsonDict 에 포함된 데이터 Key/Value
최상위 Payload 키
Payload 값
필수여부
Payload 키
Payload 값
필수여부
앱이 백그라운드 상태일 때
Last updated
Was this helpful?