getPayloadObject method

Future<NtiuspPayload> getPayloadObject(
  1. String payloadStr
)

Implementation

Future<NtiuspPayload> getPayloadObject(String payloadStr) async {
  // JSON 디코딩
  final Map<String, dynamic> decoded = json.decode(payloadStr);

  NtiuspPayload result;

  if (Platform.isAndroid) {
    // Android: 그대로 매핑
    result = NtiuspPayload.fromJson(decoded);
  } else if (Platform.isIOS) {

    final Map<String, dynamic> modified = Map<String, dynamic>.from(decoded['ntiuspNoti'] ?? {});

    // aps.alert의 title, body 반영
    final alert = decoded['aps']?['alert'];
    if (alert != null) {
      modified['notiMsgTitle'] = alert['title'] ?? '';
      modified['notiMsg'] = alert['body'] ?? '';
    }

    modified['pushId'] = modified['pushId'];
    result = NtiuspPayload.fromJson(modified);
  } else {
    // 기타 플랫폼 기본 처리
    result = NtiuspPayload.fromJson(decoded);
  }
  return result;
}