gpt4 book ai didi

android - 使用 react-native-push-notification 删除以前的通知

转载 作者:可可西里 更新时间:2023-11-01 06:17:35 33 4
gpt4 key购买 nike

我正在编写一个应用程序,当后台计时器通过 react-native-push-notification 运行时,每十五分钟发送一次本地推送通知。 .如果 notification n 没有被用户操作,当 notification n+1 被推送时,我想删除 notification n

到目前为止,我尝试过的是在运行 PushNotification.configure() 和设置 时将 popInitialNotification 设置为 true在调用 PushNotification.localNotification() 时将正在进行的 设置为 true。我也试过在调用 localNotification() 然后调用 PushNotification.cancelLocalNotifications({id: myId}) 时添加一个 id,但是文档明确指出 cancelLocalNotifications() 仅取消计划的通知(而且我很确定这只意味着 future 的通知)。

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 的选项(正在进行)。我可能仍需要帮助才能让 iOS 通知执行我想做的事情。

最佳答案

docs对于 react-native-push-notification 状态,您可以使用 userInfo 取消 ios 本地通知,如下所示:

PushNotification.localNotification({
...
userInfo: { id: '123' }
...
});
PushNotification.cancelLocalNotifications({id: '123'});

我已经测试过了,它有效。

对于 android,这在某种程度上起作用了:

创建通知:

 PushNotification.localNotificationSchedule({
message: message ,
date: new Date(date),
repeatType: "minute",
id: JSON.stringify(id),
userInfo: { id: JSON.stringify(id) }
});

PushNotification.cancelLocalNotifications({ id: id});

将 id 字符串化后可以取消 android 推送通知。

关于android - 使用 react-native-push-notification 删除以前的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42703830/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com