在 Android 应用程序中实现 Pubnub 通知



我正在使用 Pubnub 开发聊天应用程序,但在实现推送通知时遇到问题。 我已经为Pubnub使用了以下库

编译 'com.pubnub:

pubnub-android:3.7.10'

以及以下 FCM 通知

>编译 'com.google.firebase:firebase-messaging:9.6.0'

如果我从 Firebase 控制台手动发送一条消息,指示 FCM 已正确集成,则能够收到推送消息。

我还在 Pubnub 帐户仪表板中为推送通知启用了附加组件。

然后在那里添加了FCM服务器。

实时消息传递,历史API回调和状态API等功能工作得很好。

我只坚持实施推送通知。

当我搜索时,我开始了解这种方法

pubnub.addPushNotificationsOnChannels()
.pushType(PNPushType.GCM)
.channels(Arrays.asList("ch1", "ch2", "ch3"))
.deviceId("googleDevice")
.async(new PNCallback<PNPushAddChannelResult>() {
@Override
public void onResponse(PNPushAddChannelResult result, PNStatus status) {
// handle response.
}
});

但上述方法对于我一直使用的 SDK 版本不再可用。

我知道下面的方法相同,但不知道它是如何工作的。

mPubNub.enablePushNotificationsOnChannel(channel, firebaseRegId, new Callback() {
@Override
public void successCallback(String chanel, Object response) {
super.successCallback(chanel, response);
Log.e(TAG, "enablePushNotificationsOnChannel successCallback: " + chanel);
Log.e(TAG, "enablePushNotificationsOnChannel successCallback: " + response);
sendNotification();
}
@Override
public void errorCallback(String s, PubnubError pubnubError) {
super.errorCallback(s, pubnubError);
Log.e(TAG, "enablePushNotificationsOnChannel errorCallback: " + s);
Log.e(TAG, "enablePushNotificationsOnChannel errorCallback: " + pubnubError);
}
});

在这件事上的任何帮助或帮助将不胜感激..!!

提前谢谢。

您的代码是正确的,只需以以下格式发送消息:

public Map<String, Object> createmessage(String messageType, String messageId) {
obj = new JSONObject();
try {
obj.put("messageType", messageType);
obj.put("senderID", SharedPref.getInstance().getInt(SharedConstants.USER_ID) + "");
obj.put("content", messagestring);
obj.put("type", contentType);
obj.put("userName", data.getName());
obj.put("messageId", messageId);
} catch (Exception e) {
e.printStackTrace();
}
byte[] encodeddata1 = Base64.encode(obj.toString().getBytes(), Base64.NO_WRAP);
String data = new String(encodeddata1);
Map<String, Object> messagepayload = new HashMap<>();
messagepayload.put("message", notification().toString());
Map<String, Object> datapayload = new HashMap<>();
datapayload.put("data", messagepayload);
Map<String, Object> mobilePayload = new HashMap<>();
mobilePayload.put("pn_gcm", datapayload);
mobilePayload.put("pn_other", data);
mobilePayload.put("pn_debug", true);
Log.e("published message", mobilePayload.toString());
return mobilePayload;
}

并使用此库:

compile 'com.pubnub:pubnub:4.0.9'

希望这会对您有所帮助..让我知道您的反馈。

相关内容

  • 没有找到相关文章

最新更新