Android 收到重复的推送通知(onesignal)

nik*_*ika 6 android push-notification firebase react-native onesignal

我已经将 OneSignal sdk 集成到我的 React-Native 项目中,一切似乎都工作正常,除了当我们向推送消息添加标题时,Android 会收到双推送通知。当我们发送没有标题的推送通知时,android 会收到一个(按预期)。非常感谢任何建议。

编辑:

我的代码:

// App.js

OneSignal.setAppId("my-app-id");

//Method for handling notifications received while app in foreground

OneSignal.setNotificationWillShowInForegroundHandler(notificationReceivedEvent => 
{
  let notification = notificationReceivedEvent.getNotification();
  const data = notification.additionalData
  notificationReceivedEvent.complete(notification);
});

//Method for handling notifications opened
OneSignal.setNotificationOpenedHandler(notification => {
  console.log("OneSignal: notification opened:", notification);
});

Run Code Online (Sandbox Code Playgroud)

我通过仪表板 - app.onesignal.com创建新的推送通知来发送推送通知。

小智 -1

通常,由于多次发送相同的推送数据,会出现重复通知。如果您看到在“传递”选项卡中发送了多个具有相同消息的通知,请检查您的服务器代码,确保 API 请求不会因重试或其他代码错误而重复。

如果您要迁移到 OneSignal 并继续从以前的消息系统发送推送,这也可能会导致重复,当您开始从 OneSignal 发送时,您应该停止从以前的消息系统发送。

Android:如果使用 Android Native SDK 版本 4.4.1 - 4.6.2,请更新到 4.6.3 或更高版本。

检查以确保您的应用程序中没有其他推送通知插件/SDK,因为它可能会尝试解析 OneSignal 通知,并显示两次。我们的 Android SDK 通过检查 OneSignal 特定数据的通知负载来防止重复通知。

安装了 2 个应用程序副本的 Android 设备也可能会收到重复的通知。如果您同时安装了具有不同 Android 包名称的生产和登台/开发应用程序,则可能会发生这种情况。这将导致两个不同的player_id和两个不同的推送令牌。

您可以长按每个通知,以确保它们来自同一个应用程序。