我正在使用https://github.com/fechanique/cordova-plugin-fcm在我的cordova应用程序(AngularJS)中接收PUSH消息。
当我添加插件并构建我的应用程序时,一切正常。 但是如果我对我的应用程序进行更改并再次构建它,我就无法接收前景消息。 (Android上只有一个问题) 该插件仍然处于活动状态并注册设备令牌以进行推送,但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');
}
答案 0 :(得分:0)
最好再次检查文档,Plugin Documentation here。
文档说onNotification
回调会向您提供通知data
对象,该对象还包含wasTapped
布尔属性。在wasTapped
属性上设置if-else条件并处理属性。如果应用程序在前台并且收到通知,则布尔值将为false
;如果应用程序在后台并且用户单击了通知,则布尔值为true
。
还要确保您在通知有效载荷中为FCM发送api发送data
对象。如果要在单击时将用户重定向到其他页面,请确保还向通知有效载荷中发送"click_action":"FCM_PLUGIN_ACTIVITY"
。