【问题标题】:Test react native firebase push notification in simulator在模拟器中测试反应原生 Firebase 推送通知
【发布时间】:2020-09-24 16:10:25
【问题描述】:

根据 react native firebase doc,推送通知在模拟器中不起作用。 当您在通过电缆连接到 PC 的真实 ios/Android 设备上运行应用程序时,即使应用程序外通知(当应用程序在后台并且您在状态栏中看到通知时)也不起作用。 (应用内通知虽然使用messaging().onMessage

当前行为: 我的 Firebase 推送通知在独立 apk/ipa 中的 Android 和 ios 上都能完美运行。 但是,我无法在模拟器上的开发过程中对其进行测试。

期望的行为: 我想在应用程序在后台在模拟器上运行时收到推送通知(应用程序外通知),以便我可以像往常一样使用messaging().onNotificationOpenedApp 方法。

我为什么需要这个? 当然,每次我对推送通知进行更改时,我都可以创建一个独立的应用程序,将其安装在手机上,看看它是如何工作的。 这种方法有很多问题:

  1. 超级耗时,根本没有意义
  2. 如果代码未按预期工作,则无法检查问题所在
  3. 没有console.log,一般情况下没办法调试代码

【问题讨论】:

  • 我不确定我是否理解您在这里向我们提出的要求。如果此功能被记录为不适用于react-native-firebase,这不应该是该repo 上的功能请求吗?
  • 亲爱的@FrankvanPuffelen 感谢您的回复。我想知道这样做是否有技巧。
  • 你有没有找到任何方法来测试模拟器上的反应原生 Firebase 推送通知?我很挣扎,如果您有任何解决方案,请提出建议。
  • 亲爱的@ArchanaSharma,四个月后我还没有找到任何解决方案。我可以理解在测试系统时是多么令人沮丧,它只是超级耗时。不幸的是,Xcode 模拟器不支持这个。

标签: reactjs firebase react-native push-notification


【解决方案1】:

为了触发 firebase 的 messaging().onNotificationOpenedApp,我使用了以下有效负载 json:

{
  "Simulator Target Bundle": "bundle.identifier",
  "google.c.a.e": 1,
  "foo": "bar",
  "aps": {
      "alert": "Alert!",
      "content-available": 1
  },
  "gcm.message_id": "0:1538488916770554%a88db343a88db34"
}

【讨论】:

    【解决方案2】:

    最后,您可以在 Xcode 11.4 及更高版本 (Release note) 中执行此操作。

    模拟器支持模拟远程推送通知,包括 后台内容获取通知。

    另外here,您可以找到一个基于 react native 的分步指南。

    【讨论】:

    • 你能确认这对bare-workflow (NOT expo managed-workflow) react-native 项目有效吗?
    • 是的,它是关于 Xcode 功能的。但您应该明白,目前它不适用于react-native-firebase 之类的getInitialNotification() 函数。也许在未来,这个团队决定发布更多关于 ios 模拟器推送的细节。如果您在react-native-firebase 上创建问题,直到他们尽快使用此 Xcode 功能,这会很好。
    猜你喜欢
    • 2017-12-18
    • 2021-11-07
    • 2018-04-09
    • 2016-05-29
    • 2018-01-17
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多