【发布时间】:2021-02-10 20:48:38
【问题描述】:
我在两个地方订阅了所有必要的频道:
// For receiving real time (regular) messages
pubnub.subscribe().channels(channels).execute();
对于推送
pubnub.addPushNotificationsOnChannels()
.pushType(PNPushType.FCM)
.channels(channels)
.deviceId(firebaseMessageingTokenForThisUser)
当我发送消息时,我也会为 Push 指定数据:
PushPayloadHelper pushPayloadHelper = new PushPayloadHelper();
// set FCM payload
pushPayloadHelper.setFcmPayload(fcmPayload);
// Set APNs payload
pushPayloadHelper.setApnsPayload(apnsPayload);
// Common payload for realtime PubNub subscribe
Map<String, Object> commonPayload = new HashMap<>();
commonPayload.put("message", jsonPayload);
pushPayloadHelper.setCommonPayload(commonPayload);
pubnub.publish()
.channel(channelName)
.message(pushPayloadHelper.build())...
预期行为:
- 当 Android 客户端在前台时,消息会实时传递
- 当应用程序关闭/终止时,消息作为推送传递
当前行为:
当应用程序运行时,消息以 Push 方式传递(调用 Firebase Push 服务方法)
实时(public void message(@NotNull PubNub pubnub, @NotNull PNMessageResult message) 方法被调用)
我做错了什么?在官方文档中找不到任何相关信息。
【问题讨论】: