【发布时间】:2017-03-09 19:26:18
【问题描述】:
我正在编写一个应用程序,当后台计时器通过react-native-push-notification 运行时,它每十五分钟发送一次本地推送通知。如果notification n没有被用户操作,当notification n+1被推送时,我想删除notification n。
到目前为止我尝试过的事情是在运行PushNotification.configure() 时将popInitialNotification 设置为true,并在调用PushNotification.localNotification() 时将ongoing 设置为true。我还尝试在调用localNotification() 然后调用PushNotification.cancelLocalNotifications({id: myId}) 时添加id,但文档明确指出cancelLocalNotifications() 只取消预定通知(我很确定它仅表示未来的)。
componentWillMount() {
PushNotification.configure({
permissions: {
alert: true,
badge: true,
sound: true
},
popInitialNotification: true,
});
}
doPushNotification() {
if (AppState.currentState !== 'active') {
PushNotification.localNotification({
vibration: 500,
message: 'my message',
ongoing: true,
});
}
}
目前我只在开发 Android 版本,但很快我将开发 iOS 版本,所以一个通用的解决方案(或每个解决方案)将是最有帮助的。
如果有更好的 React Native 库,我也不会完全支持 react-native-push-notification;我只是还没找到。
编辑
我发现它适用于 Android。将调用PushNotification.localNotification() 时的id 设置为与上一个通知相同的值将覆盖通知。
我仍在我的 Mac 上安装 XCode,所以我还不能测试 iOS 上的当前行为。然而,react-native-push-notification 自述文件说id 是一个仅限 Android 的选项(ongoing 也是如此)。我可能仍然需要帮助来获取 iOS 通知来做我想做的事。
【问题讨论】:
-
他们的文档确实非常糟糕。我注意到还有另一个包含真实文档的库:github.com/wix/react-native-notifications。
标签: android ios react-native push-notification