我观察到在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);
}
答案 0 :(得分:0)
如果要在componentWillMount中注册,建议的方法是在compononentWillUnmount中删除EventListener。 https://facebook.github.io/react-native/docs/pushnotificationios.html#removeeventlistener
我的建议是在app启动和调度操作时只设置一次,以防你使用redux / flux等。