如果应用程序在后台,则不会触发 onNotification 回调。使用 cordova-plugin-fcm-with-dependecy-updated cordova 插件

The onNotification callback doesn't fire if an app is in background. Using cordova-plugin-fcm-with-dependecy-updated cordova plugin

当应用程序处于后台时,onNotification 回调不会在点击通知后触发。 应用程序进入前台,但 JS 事件处理程序不执行。另外,在Android的情况下,Logcat中没有包含FCMPluginActivity的消息,所以我认为对应的activity没有启动。

由于我们使用的是meteor,所以Cordova版本是由Meteor版本固定的,最新的meteor版本有cordova-android v7.1.4和cordova-ios v4.5.5,无法满足要求使用最新版本 cordova-plugin-fcm-with-dependecy-updated。所以我们使用3.2.0版本。

如何重现(在 Android 的情况下):

  1. 创建新的流星应用程序:meteor create --full ./test-fcm
  2. 添加插件:meteor add cordova:cordova-plugin-fcm-with-dependecy-updated@3.2.0.
  3. 添加mobile-config.js文件到根目录,包含App.info({id: "com.yourCompany.appId"});.
  4. 添加google-services.json文件到test-fcm/cordova-build-override/platforms/android/app/.
  5. 启动应用程序:meteor run android
  6. 将 Chrome DevTools 连接到模拟器并创建 onNotification 事件处理程序:window.FCMPlugin.onNotification((data) => { console.log(data); });.
  7. 从 Firebase 控制台发送包含自定义数据的通知。

任何建议都会有所帮助。 谢谢!

原来我们忘记将 click_action 字段添加到 FCM 请求负载 ("click_action":"FCM_PLUGIN_ACTIVITY")。

有了这个字段 onNotification 工作正常。