2

我正在构建一个 react-native 应用程序。我有一个接收推送通知的后台 android 服务。我需要将通知信息(标题,描述...)存储在 react-native 数据库或异步存储中...因为在我的应用程序中,我有一个显示所有通知的页面。我需要如果我的应用程序在后台并且我收到通知,当用户打开应用程序时,页面会显示此信息。我怎么能做到这一点?

我尝试将通知存储在 react-native 使用的同一数据库中,但我无法将数据存储在 android 服务上。请帮我。

4

2 回答 2

0

你有没有尝试探索这些。

    componentWillMount() {
    Linking.addEventListener("url", this.handleOpenURL);
    OneSignal.addEventListener("ids", this.onIds);
    OneSignal.addEventListener("received", this.onReceived);
    OneSignal.addEventListener("opened", this.onOpened);
  }

在 oneReceived 事件监听器中,您可以将数据存储在从推送通知接收到的异步存储中。

onReceived(data) {
    this.props.setData(data);
  }

在集合数据中,您可以使用逻辑来存储数据。好吧,我必须说推送通知不用于获取数据并存储然后渲染。这些仅提供很少的信息来打开特定屏幕。就像我收到与交易相关的通知.然后按下将通过链接而不是应用程序的主页自动打开交易屏幕。对于您的情况,您可以在该特定页面上发送请求以获取数据。

于 2020-01-23T13:00:29.530 回答
0

是的,但是当您关闭应用程序并在此之后,有人发送一个推送通知,接收和打开的事件等什么都不做。我试图制作一个接收此信息并尝试发送事件的自定义本机模块。我遵循了本指南:

https://facebook.github.io/react-native/docs/native-modules-android#sending-events-to-javascript

但它不起作用,总是返回“在加载包之前调用 sendEvent”java.lang.NullPointerException。

于 2020-01-31T12:05:18.740 回答