콘텐츠로 건너뛰기

Flutter용 메시지 인박스 설정

Flutter용 메시지 인박스(“벨 아이콘” 앱 인박스)는 별도의 pushwoosh_inbox 패키지로 제공되므로, 기본 pushwoosh_flutter 패키지와 함께 설치하세요.

전제 조건

Anchor link to

패키지 추가

Anchor link to

pubspec.yaml에 pushwoosh_inbox를 추가하세요. 현재 버전은 pub.dev에서 확인하세요:

pubspec.yaml
dependencies:
pushwoosh_inbox: '^2.3.24'

인박스 표시

Anchor link to
import 'package:pushwoosh_inbox/pushwoosh_inbox.dart';
PushwooshInbox.presentInboxUI();

이 코드는 SDK의 기본 모양을 가진 네이티브 화면(iOS에서는 뷰 컨트롤러, Android에서는 액티비티)을 엽니다.

스타일 사용자 정의

Anchor link to

presentInboxUI()에 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()와 동일하게 동작하며 여전히 네트워크를 호출합니다.