【问题标题】:React-native: display foreground notifications like background notifications with zo0r/react-native-push-notificationReact-native:使用 zo0r/react-native-push-notification 显示前台通知,例如后台通知
【发布时间】:2020-07-03 01:26:23
【问题描述】:

我已经使用zo0r / react-native-push-notification 在我的 React-native 应用程序上设置了推送通知。当应用程序处于后台模式时,它适用于 Android 和 iOS。

但是,当应用在 iOS 中处于前台模式时,通知不会显示。我知道我必须在前台模式下处理通知,但我想以与后台模式下完全相同的方式显示它们。

所以我做了以下事情:

import {PushNotificationIOS} from 'react-native';

PushNotification.configure({
...
   onNotification: function(notification) {
      if (notification.foreground) {
         PushNotification.localNotification(notification);
      }
      notification.finish(PushNotificationIOS.FetchResult.NoData);
   },
...
}

但是什么都没有发生,通知仍然没有显示,我错过了什么?

【问题讨论】:

  • 您能否为此提供示例实现我在foreground 面临的问题如果我使用PushNotification.localNotification 它显示两个(默认和区域设置)
  • iOS、Android 或两者都有问题?
  • 我在 android 上遇到了问题,频道(杂项)是在后台通知中创建的,而不是在前台创建的。我需要保持在后台才能第一次接收它,因为通道是在后台创建的。
  • 我编辑了我的帖子以显示有效的代码

标签: ios react-native push-notification apple-push-notifications react-native-push-notification


【解决方案1】:

我不得不在 ios 文件 AppDelegate.m 中添加一些配置

按照这个gist 确实让它工作了。

我的代码如下:

onNotification(notification) {
  if (isIos) {
    if (
      notification.foreground &&
      (notification.userInteraction || notification.remote)
    ) {
      PushNotification.localNotification(notification);
    }
    notification.finish(PushNotificationIOS.FetchResult.NoData);
  } else {
    if (notification.foreground) {
      PushNotification.localNotification(notification);
    }
  }
},

我还将popInitialNotification 设置为true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多