当应用程序被杀或在react-native-fcm中显示背景时,以JSON格式显示fcm通知消息

时间:2018-02-28 09:59:05

标签: react-native react-native-android react-native-fcm

我正在使用react-native-fcm库来安装Android设备。当我的应用程序运行时,我正在收到正确的通知,但是当我的应用程序在后台或被杀时,我在JSON格式中获得的通知数据类似于我在此处共享的图像。

enter image description here

componentDidMount() {
        // iOS: show permission prompt for the first call. later just check permission in user settings
        // Android: check permission in user settings
        FCM.requestPermissions().then(()=>console.log('granted')).catch(()=>console.log('notification permission rejected'));
        /*FCM.getFCMToken().then(token => {
            console.log('Token',token)
            // store fcm token in your server
        });*/
        this.notificationListener = FCM.on(FCMEvent.Notification, async(notif) => {
            console.log('FCM notification', notif)
            this.sendRemote(notif)
        });

        // initial notification contains the notification that launchs the app. If user launchs app by clicking banner, the banner notification info will be here rather than through FCM.on event
        // sometimes Android kills activity when app goes to background, and when resume it broadcasts notification before JS is run. You can use FCM.getInitialNotification() to capture those missed events.
        // initial notification will be triggered all the time even when open app by icon so send some action identifier when you send notification
        /*FCM.getInitialNotification().then(notif => {
            console.log('FCM', notif)
            this.sendRemote(notif)
            //console.log('Initial Notification',notif)
        });*/

        FCM.getInitialNotification().then((notif: any) => {
            // for android/ios app killed state
            console.log("ifAny",notif)
            if (notif) {
                console.log("Any",notif)
                // there are two parts of notif. notif.notification contains the notification payload, notif.data contains data payload
            }
        });
    }




sendRemote(notif) {
    var data = notif.fcm.body;
    var title = notif.fcm.title;
    FCM.presentLocalNotification({
        title: 'App Name',
        body: title,
        big_text: title,
        large_icon: 'ic_launcher',
        priority: 'high',
        sound: "default",
        click_action: this.clickActions(notif),
        show_in_foreground: true,
        wake_screen: true,
        local: true,
        param: notif.notify_about,
        paramData: data
    });
}

notify_about:'&#39 ;, FCM:{行动:空, 体:" {数据:'',时间:''}&#34 ;, 颜色:空, 图标:'', 标签:空, 标题:"通知标题"}

这是我从服务器发送的数据格式。

这里我只想显示数据正文。但是当应用程序被杀或在后台时,它会在通知中显示完整的正文。当应用程序运行时,它正常工作。

0 个答案:

没有答案