跳到内容

为 React Native 设置消息收件箱

Pushwoosh React Native 插件将消息收件箱(Message Inbox,即“铃铛图标”的应用内收件箱)作为与推送通知相同的 pushwoosh-react-native-plugin 包的一部分提供。无需额外的安装步骤。

前提条件

Anchor link to

显示收件箱

Anchor link to
import 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