【问题标题】:cordova FCMplugin issuse when building android app构建android应用程序时的cordova FCMplugin问题
【发布时间】:2018-09-18 23:55:53
【问题描述】:

我正在使用 https://github.com/fechanique/cordova-plugin-fcm 在我的科尔多瓦应用 (AngularJS) 中接收推送消息。

当我添加插件并构建我的应用程序时,一切正常。 但是,如果我对我的应用程序进行更改并重新构建它,我将无法收到前台消息。 (只有安卓有问题) 该插件仍然处于活动状态并注册了设备令牌以进行推送,但方法 onNotification() 不再接收消息。

如果我删除并重新安装插件,它会再次工作,但仅适用于一个版本。

我不知道是什么导致了问题。 有什么想法吗?

编辑

我认为“cordova build”命令会以某种方式覆盖某些内容,但我不知道是什么

我的 onNotification 代码

if (typeof FCMPlugin != 'undefined') {

     FCMPlugin.getToken(function (token) {
         //...
     });


     FCMPlugin.onTokenRefresh(function (token) {
         //...
     });


     FCMPlugin.onNotification(function(data){
         console.log('push-message received');

         $ionicPopup.alert({
             title: 'test',
             template: data.message
         });

     });
 }
 else{
     console.log('FCMPlugin not available');
 }

【问题讨论】:

  • 你能分享订阅 onNotification 方法的代码块吗?
  • 我在帖子中添加了 onNotification 部分。但我不认为这是问题所在。

标签: android angularjs cordova ionic-framework cordova-plugin-fcm


【解决方案1】:

你最好再检查一下文档,Plugin Documentation here。 文档说onNotification 回调给你通知data 对象,该对象还包含wasTapped 布尔属性。在 wasTapped 属性和句柄属性上设置 if-else 条件。如果应用程序在前台并且收到通知,则布尔值将为 false;如果应用程序在后台并且用户单击通知,则布尔值将为 true

还要确保在 FCM 发送 API 的通知负载中发送 data 对象。如果您在点击时将用户重定向到其他页面,请确保您还在通知负载中发送"click_action":"FCM_PLUGIN_ACTIVITY"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-04
    • 2019-04-04
    • 1970-01-01
    • 2017-10-03
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多