我使用的是android和pubnub。pubnub - 發佈回退推送通知不起作用
我做了訂閱/發佈教程,它的工作原理,我有一個工作聊天(當應用程序打開時)。
閱讀所有的教程後,我明白,而應用程序在後臺或關閉時,publish
方法應該退回到推送通知發送給大家誰subscribe
和enablePushNotificationsOnChannel
的通道。
由於某種原因,它不適用於我,我不確定它應該如何工作。
從教程,應該有一個一段代碼,或者:
- 發送數據throught的實時信道。
- 如果應用程序關閉/在後臺發送推送通知。
從網站:
/ Send Push Notification to all devices
// registered to `my_channel`
JSONObject jso = null;
try {
jso = new JSONObject("{
'aps' : {
'alert' : 'You got your emails.'," + "
'badge' : 9,
'sound' : 'bingbong.aiff'}," + "
'acme 1': 42
}");
pubnub.publish("my_channel", jso,
new Callback(){
@Override
public void successCallback(String arg0,
Object arg1) {
System.out.println(arg1);
}
並且:
Sending Notifications
Sending a notification requires creating a JSON object. It is then added to a PubNub GCM specific message (the message is formatted for you).
public void sendNotification() {
PnGcmMessage gcmMessage = new PnGcmMessage();
JSONObject jso = new JSONObject();
try {
jso.put("GCMSays", "hi");
} catch (JSONException e) { }
gcmMessage.setData(jso);
PnMessage message = new PnMessage(
pubnub,
"your channel name",
callback,
gcmMessage);
try {
message.publish();
} catch (PubnubException e) {
e.printStackTrace();
}
}
Note that we have to create the callback methods which will be fired when the message is published:
public static Callback callback = new Callback() {
@Override
public void successCallback(String channel, Object message) {
Log.i(TAG, "Success on Channel " + CHANNEL + " : " + message);
}
@Override
public void errorCallback(String channel, PubnubError error) {
Log.i(TAG, "Error On Channel " + CHANNEL + " : " + error);
}
};
所以,很顯然,這是兩個不同的代碼片段,其中沒有涉及這兩個選項(當應用程序打開時的實時頻道,當應用程序關閉時推送通知)。
我所需要的一段代碼:
- 如果該應用被打開 - 通過通道發送數據。
- 如果應用程序已關閉/在後臺 - 發送推送通知。在設備上 -