React native 在后台使用Expo发送推送通知

React native 在后台使用Expo发送推送通知,react-native,expo,React Native,Expo,Expo具有用于发送推送通知的通知API。然而,当应用程序位于后台时,如何发送推送通知?可以从服务器触发推送通知或提前安排推送通知吗?发送推送通知是从您的服务器完成的,因此您可以随时发送推送通知,并安排作业来处理推送通知 但是,如果应用程序是后台的,并且用户尚未选择通知,则您将无法在客户端处理通知的接收。根据: 您无法在后台处理推送通知。这是一本书 正在进行中 但是,如果应用程序位于前台或用户选择了通知,则通知将传递给应用程序中的侦听器。发送推送通知是从服务器完成的,因此您可以随时发送推送通知,

Expo具有用于发送推送通知的通知API。然而,当应用程序位于后台时,如何发送推送通知?可以从服务器触发推送通知或提前安排推送通知吗?

发送推送通知是从您的服务器完成的,因此您可以随时发送推送通知,并安排作业来处理推送通知

但是,如果应用程序是后台的,并且用户尚未选择通知,则您将无法在客户端处理通知的接收。根据:

您无法在后台处理推送通知。这是一本书 正在进行中


但是,如果应用程序位于前台或用户选择了通知,则通知将传递给应用程序中的侦听器。

发送推送通知是从服务器完成的,因此您可以随时发送推送通知,并安排作业来处理

但是,如果应用程序是后台的,并且用户尚未选择通知,则您将无法在客户端处理通知的接收。根据:

您无法在后台处理推送通知。这是一本书 正在进行中

但是,如果应用程序位于前台或用户选择了通知,则通知将传递给应用程序中的侦听器。

我们可以在后台处理推送通知

为此,如果AppState为“活动”且origin==“已接收”,我们必须取消通知

这是完整的代码

我们可以在后台处理推送通知

为此,如果AppState为“活动”且origin==“已接收”,我们必须取消通知

这是完整的代码


谢谢什么时候准备好,或者如何为发展做出贡献?还有,你知道有什么解决办法吗?@Remeus,弹出式通知在托盘中也看不到?谢谢!什么时候准备好,或者如何为发展做出贡献?另外,你知道这有什么解决办法吗?@Remeus,弹出式通知在托盘中也看不到?你能解释一下它是如何工作的吗?您使用的是什么版本的expo SDK 36?您能解释一下它是如何工作的吗?您使用的是什么版本的expo SDK 36
import React from 'react';
import {  Text, View, Vibration, AppState } from 'react-native';
import { Notifications } from 'expo';

export default class App extends React.Component {

    constructor(props) {
        super(props);
        this.state = {
            notification: {}
        }
    }


    componentDidMount() {
        this._notificationSubscription = Notifications.addListener(
            this._handleNotification
        );
    }

    _handleNotification = notification => {
        if (AppState.currentState == 'active' && notification.origin === 'received') {
            Notifications.dismissNotificationAsync(notification.notificationId);
        } else {
            Vibration.vibrate()
            this.setState({ notification: notification });
        }
    };

    render() {
        return (
          <View><Text>Push Notifications Sample</Text></View>
        );
    }
}