为 React Native 设置消息收件箱
Pushwoosh React Native 插件将消息收件箱(Message Inbox,即“铃铛图标”的应用内收件箱)作为与推送通知相同的 pushwoosh-react-native-plugin 包的一部分提供。无需额外的安装步骤。
前提条件
Anchor link to- 基本的 Pushwoosh React Native SDK 已集成并能发送推送。
显示收件箱
Anchor link toimport Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.presentInboxUI();presentInboxUI() 会在 React 视图树之外呈现一个原生屏幕(在 iOS 上是视图控制器,在 Android 上是 Activity),并采用 SDK 的默认外观。
自定义样式
Anchor link to将样式对象传递给 presentInboxUI()。颜色值必须通过 React Native 的 processColor() 进行处理。每个键都是可选的:
| 键 | 自定义内容 |
|---|---|
dateFormat | 日期格式 |
defaultImageIcon | 无图片消息旁的默认图标 |
unreadImage | 未读消息标记(仅限 iOS) |
listErrorImage | 列表加载失败时显示 |
listEmptyImage | 列表无消息时显示 |
listErrorMessage | 错误文本(未本地化) |
listEmptyMessage | 列表为空时的文本(未本地化) |
defaultTextColor | 默认文本颜色(仅限 iOS) |
accentColor | 强调色 |
backgroundColor | 背景色 |
highlightColor | 选择颜色 |
titleColor | 消息标题颜色 |
readTitleColor | 已读消息的标题颜色(仅限 Android) |
descriptionColor | 消息描述颜色 |
readDescriptionColor | 已读消息的描述颜色(仅限 Android) |
dateColor | 消息日期颜色 |
readDateColor | 已读消息的日期颜色(仅限 Android) |
dividerColor | 分隔线颜色 |
barBackgroundColor | 标题栏的背景色 |
barAccentColor | 标题栏的返回按钮颜色 |
barTextColor | 标题栏的文本颜色 |
import Pushwoosh from 'pushwoosh-react-native-plugin';import { processColor } from 'react-native';
Pushwoosh.presentInboxUI({ dateFormat: "dd.MM.yyyy", accentColor: processColor('#3498db'), backgroundColor: processColor('#ffffff'), titleColor: processColor('#333333'), descriptionColor: processColor('#666666'), listEmptyMessage: "No messages yet"});以编程方式管理消息
Anchor link to无需打开内置屏幕即可加载消息列表、读取计数并对单个消息执行操作。这对于自定义收件箱 UI 或未读消息标记非常有用:
Pushwoosh.loadMessages( (messages) => { messages.forEach((msg) => { console.log(msg.title + ": " + msg.message); }); }, (error) => console.error("Failed to load: " + error));
Pushwoosh.unreadMessagesCount((count) => { console.log("Unread messages: " + count);});
Pushwoosh.messagesCount((count) => { /* 消息总数 */ });Pushwoosh.messagesWithNoActionPerformedCount((count) => { /* 尚未执行操作 */ });
Pushwoosh.readMessage(messageId);Pushwoosh.deleteMessage(messageId);Pushwoosh.performAction(messageId); // 运行消息的默认操作,例如打开 URL