重复调用PushNotificationIOS寄存器处理程序

时间:2016-09-11 10:30:35

标签: react-native

我观察到在iPhone上运行应用程序时会重复调用PushNotificationIOS register处理程序。我正在使用react-native 0.32并在iPhone 5s上运行它。

以下是我如何注册非常标准的register事件处理程序

PushNotificationIOS.addEventListener('register', this.appRegistrationHandlerIos);

在事件处理程序中,我只是将设备令牌存储在数据库中。我观察它像每一秒一样被重复调用。有没有人观察过它?我添加了代码来删除register事件处理程序中的事件处理程序,它似乎已经修复了问题,但这是正确的方法。更改后,register处理程序如下所示

appRegistrationHandlerIos = (deviceToken) => {
    console.log('Updating the device info')
    // Store the token in the database
    PushNotificationIOS.removeEventListener('register', this.appRegistrationHandlerIos);
}

1 个答案:

答案 0 :(得分:0)

如果要在componentWillMount中注册,建议的方法是在compononentWillUnmount中删除EventListener。 https://facebook.github.io/react-native/docs/pushnotificationios.html#removeeventlistener

我的建议是在app启动和调度操作时只设置一次,以防你使用redux / flux等。