微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Native Android 前台推送通知与 iOS 不一致

如何解决React Native Android 前台推送通知与 iOS 不一致

我正在使用 react-native-notifications 并且前台通知在 iOS 上正常工作,但仍然显示在 Android 模拟器上。我没有要测试的 Android 设备。

这段代码中是否有我遗漏的地方?

import React from 'react'
import {Platform,View} from 'react-native'
import { Notifications } from 'react-native-notifications'
import API from '../models/api';
import DeviceInfo from 'react-native-device-info'
import {connect} from 'react-redux';

class PushNotifications extends React.Component<any,any> {

    public async componentDidMount() {
        if (await DeviceInfo.isEmulator() && Platform.OS === 'ios') return null;
        this.registerDevice()
        this.registerNotificationEvents()
    }

    public registerDevice = () => {
        console.log(TAG,'registering device');
        Notifications.events().registerRemoteNotificationsRegistered(async event => {
                // Save device
                // ...
        })
        Notifications.events().registerRemoteNotificationsRegistrationFailed(event => {
            console.error(event)
        })

        Notifications.registerRemoteNotifications()
    }

    public registerNotificationEvents = () => {
        Notifications.events().registerNotificationReceivedForeground((notification,completion) => {
            console.log('Notification Received - Foreground',notification)
            // Calling completion on iOS with `alert: true` will present the native iOS inApp notification.
            completion({ alert: false,sound: false,badge: false })
        })

        Notifications.events().registerNotificationopened(async (notification:any,completion) => {
            console.log('Notification opened by device user',notification)
            // console.log(`Notification opened with an action identifier: ${notification.identifier}`);

            // ...

            completion()
        })

        Notifications.events().registerNotificationReceivedBackground((notification,completion) => {
            console.log('Notification Received - Background',notification)

            // Calling completion on iOS with `alert: true` will present the native iOS inApp notification.
            completion({ alert: true,sound: true,badge: true })
        })

        Notifications.getinitialNotification()
            .then(notification => {
                console.log('Initial notification was:',notification || 'N/A')
            })
            .catch(err => console.error('getinitialNotifiation() Failed',err))
    }

    render() {
        return <View/>
    }
}

const s2p = state => ({
    userId: state.user._id
});

export default connect(s2p)(PushNotifications);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?