我在Android上使用UrbanAirship作为我的移动参与工具,与FCM并行。根据UrbanAirship文档,如果使用我自己的FirebaseMessagingService
,我需要使用AirshipFirebaseMessagingService.processMessageSync(this, remoteMessage);
传递远程消息
我怎么能知道UrbanAirship没有处理该消息,我就退回到我自己的FCM通知生成器?processMessageSync
方法没有返回值。我注意到,由于UrbanAirship以同步的方式处理消息,因此它们正在消耗和取消remoteMessage
对象的notification
字段。我觉得奇怪的是,他们没有暴露任何财产或回报价值。
这是为我工作的代码(AppFirebaseMessageService.java
的一部分(
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
AirshipFirebaseMessagingService.processMessageSync(this, remoteMessage);
if (remoteMessage != null && remoteMessage.getNotification() != null) {
handleInternalFcm(remoteMessage);
}
}
我得到了UrbanAirship的支持。这是知道UA是否可以处理消息的官方方法:
PushMessage pushMessage = new PushMessage(message.getData());
if (pushMessage.containsAirshipKeys()) {
//will be handled by UrbanAirship
}