Flutter용 메시지 인박스 설정
Flutter용 메시지 인박스(“벨 아이콘” 앱 인박스)는 별도의 pushwoosh_inbox 패키지로 제공되므로, 기본 pushwoosh_flutter 패키지와 함께 설치하세요.
전제 조건
Anchor link to- 기본 Pushwoosh Flutter SDK가 이미 통합되어 푸시를 보내고 있습니다.
패키지 추가
Anchor link topubspec.yaml에 pushwoosh_inbox를 추가하세요. 현재 버전은 pub.dev에서 확인하세요:
dependencies: pushwoosh_inbox: '^2.3.24'인박스 표시
Anchor link toimport 'package:pushwoosh_inbox/pushwoosh_inbox.dart';
PushwooshInbox.presentInboxUI();이 코드는 SDK의 기본 모양을 가진 네이티브 화면(iOS에서는 뷰 컨트롤러, Android에서는 액티비티)을 엽니다.
스타일 사용자 정의
Anchor link topresentInboxUI()에 PWInboxStyle을 전달하세요. 모든 필드는 선택 사항이며, 설정하지 않으면 기본값을 유지합니다. 이미지 필드는 Flutter 애셋 경로이며 pubspec.yaml에 선언해야 합니다:
| 필드 | 사용자 정의 항목 |
|---|---|
dateFormat | 날짜 형식, 예: "dd.MMMM.yyyy" |
defaultImage | 이미지가 없는 메시지 옆의 기본 아이콘 |
unreadImage | 읽지 않은 메시지 표시 (iOS 전용) |
listErrorImage | 목록 로딩에 실패했을 때 표시됨 |
listEmptyImage | 목록에 메시지가 없을 때 표시됨 |
listErrorMessage | 오류 텍스트 (지역화되지 않음) |
listEmptyMessage | 빈 목록 텍스트 (지역화되지 않음) |
barTitle | 인박스 화면의 제목 |
defaultTextColor | 기본 텍스트 색상 (iOS 전용) |
accentColor | 강조 색상 |
backgroundColor | 배경 색상 |
highlightColor | 선택 색상 |
titleColor | 메시지 제목 색상 |
readTitleColor | 읽은 메시지의 제목 색상 (Android 전용) |
descriptionColor | 메시지 설명 색상 |
readDescriptionColor | 읽은 메시지의 설명 색상 (Android 전용) |
dateColor | 메시지 날짜 색상 |
readDateColor | 읽은 메시지의 날짜 색상 (Android 전용) |
dividerColor | 구분선 색상 |
barBackgroundColor | 제목 표시줄의 배경 색상 |
barAccentColor | 제목 표시줄의 뒤로가기 버튼 색상 |
barTextColor | 제목 표시줄의 텍스트 색상 |
imageTypeColor | 읽지 않은 액션 아이콘 색상, 예: 딥 링크 또는 URL (Android 전용) |
readImageTypeColor | 읽은 액션 아이콘 색상 (Android 전용) |
PWInboxStyle style = PWInboxStyle();style.barTitle = "Messages";style.barBackgroundColor = "#3AD29F";style.accentColor = "#6750A4";style.listEmptyMessage = "No messages yet";style.defaultImage = "assets/images/logo.png";PushwooshInbox.presentInboxUI(style: style);프로그래밍 방식으로 메시지 관리
Anchor link to내장된 화면을 열지 않고 메시지 목록, 읽은 수, 개별 메시지에 대한 작업을 로드합니다. 이는 사용자 정의 인박스 UI나 읽지 않은 배지에 유용합니다:
try { List<InboxMessage> messages = await PushwooshInbox.loadMessages(); for (final message in messages) { print("${message.title}: ${message.message}"); }
int? unread = await PushwooshInbox.unreadMessagesCount(); int? total = await PushwooshInbox.messagesCount(); int? notActedOn = await PushwooshInbox.messagesWithNoActionPerformedCount();} catch (error) { print("인박스 데이터를 로드하지 못했습니다: $error");}
PushwooshInbox.readMessage(messageCode);PushwooshInbox.deleteMessage(messageCode);PushwooshInbox.performAction(messageCode); // 메시지의 기본 작업(예: URL 열기)을 실행합니다loadCachedMessages()는 Android에서 네트워크 호출 없이 마지막으로 로컬에 캐시된 목록을 반환합니다. iOS에서는 현재 loadMessages()와 동일하게 동작하며 여전히 네트워크를 호출합니다.