如果应用程序在后台,则不会触发 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 的情况下):
- 创建新的流星应用程序:
meteor create --full ./test-fcm
。
- 添加插件:
meteor add cordova:cordova-plugin-fcm-with-dependecy-updated@3.2.0
.
- 添加mobile-config.js文件到根目录,包含
App.info({id: "com.yourCompany.appId"});
.
- 添加google-services.json文件到test-fcm/cordova-build-override/platforms/android/app/.
- 启动应用程序:
meteor run android
。
- 将 Chrome DevTools 连接到模拟器并创建
onNotification
事件处理程序:window.FCMPlugin.onNotification((data) => { console.log(data); });
.
- 从 Firebase 控制台发送包含自定义数据的通知。
任何建议都会有所帮助。
谢谢!
原来我们忘记将 click_action
字段添加到 FCM 请求负载 ("click_action":"FCM_PLUGIN_ACTIVITY"
)。
有了这个字段 onNotification
工作正常。
当应用程序处于后台时,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 的情况下):
- 创建新的流星应用程序:
meteor create --full ./test-fcm
。 - 添加插件:
meteor add cordova:cordova-plugin-fcm-with-dependecy-updated@3.2.0
. - 添加mobile-config.js文件到根目录,包含
App.info({id: "com.yourCompany.appId"});
. - 添加google-services.json文件到test-fcm/cordova-build-override/platforms/android/app/.
- 启动应用程序:
meteor run android
。 - 将 Chrome DevTools 连接到模拟器并创建
onNotification
事件处理程序:window.FCMPlugin.onNotification((data) => { console.log(data); });
. - 从 Firebase 控制台发送包含自定义数据的通知。
任何建议都会有所帮助。 谢谢!
原来我们忘记将 click_action
字段添加到 FCM 请求负载 ("click_action":"FCM_PLUGIN_ACTIVITY"
)。
有了这个字段 onNotification
工作正常。