0

我正在使用 react-native-fcm 接收 pushNotification 并在 ios 设备中执行本文档中的所有配置(https://github.com/evollu/react-native-fcm)仅接收通知并调用通过控制台检查的 notificationListener .log 但不显示通知消息和警报甚至测试 FCM.presentLocalNotification 以显示本地通知仍然不显示通知

    async componentDidMount() {
        if (Platform.OS === 'ios') {
            try {
                const result = await FCM.requestPermissions({ badge: false, sound: true, alert: true });
            } catch (e) {
                console.error(e);
            }

            FCM.getFCMToken().then(token => {
                if (token !== undefined) {
                    // this.props.onChangeToken(token);
                } else {
                    console.log('TOKEN (getFCMToken)', 'null');
                }
            });

            // FCM.getAPNSToken().then(token => {
            //     this.props.onAPNToken(token);
            // });

            FCM.getInitialNotification().then(notif => {
                console.log('INITIAL NOTIFICATION', notif);
            });

            this.notificationListener = FCM.on(FCMEvent.Notification, async (notif) => {

                console.log("  >> notificationListener: ", notif)

                if (notif.local_notification) return;
                FCM.presentLocalNotification({
                    body: 'tdtydt',
                    priority: "high",
                    title: 'notif.fcm.title',
                    sound: "default",
                    show_in_foreground: true,
                    local_notification: true,
                   icon: "ic_launcher",
                    status: "400"
                });

            });
            this.refreshTokenListener = FCM.on(FCMEvent.RefreshToken, token => {
                console.log('TOKEN (refreshUnsubscribe)', token);
                this.props.onChangeToken(token);
            });

            FCM.enableDirectChannel();
            this.channelConnectionListener = FCM.on(FCMEvent.DirectChannelConnectionChanged, (data) => {
                console.log(`direct channel connected${data}`);
            });
            setTimeout(() => {
                FCM.isDirectChannelEstablished().then(d => console.log('isDirectChannelEstablished', d));
            }, 500);
}
4

0 回答 0