2017-08-08 102 views
0

我在我的項目中使用了quickblox SDK。 我對此有疑問。發送推送通知給發佈聊天組中​​的其他用戶quickblox

PLZ建議

我想推送通知發送給其他用戶在公共聊天組。 我可以通過創建一個事件與私人聊天做出來,送到朋友這樣

public void createEvent(String message, List<Integer> userIds) { 
     StringifyArrayList<Integer> userIds_ = new StringifyArrayList<Integer>(userIds); 
     QBEvent event = new QBEvent(); 
     event.setUserIds(userIds_); 
     event.setEnvironment(QBEnvironment.PRODUCTION); 
     event.setNotificationType(QBNotificationType.PUSH); 
     HashMap<String, Object> messageData = new HashMap<>(); 
     messageData.put("message", message); 
     messageData.put("firID", KApp.getInstance().getCurrentUser().getId()); 
     messageData.put("name", KApp.getInstance().getCurrentUser().getName()); 
     event.setMessage(messageData); 
QBPushNotifications.createEvent(event).performAsync(new QBEntityCallback<QBEvent>() { 
      @Override 
      public void onSuccess(QBEvent qbEvent, Bundle bundle) { 
       System.out.print("Create event success"); 
       System.out.print(qbEvent.toString()); 
      } 
    @Override 
      public void onError(QBResponseException e) { 
       System.out.print("Create event error : " + e.getLocalizedMessage()); 
      } 
     }); 
    } 

但隨着公共聊天對話框,我不能得到列表中的用戶ID,它送花兒給人空車返回。

如何向PUBLIC組中的其他成員發送推送通知?

回答

1

因爲所有用戶都可以在公共組聊天中聊天,所以發送推送到PUBLIC_GROUP是沒有意義的。如果您需要通知對話者,請使用GROUP對話框。注意:在PUBLIC_GROUP中,當用戶處於脫機狀態時,由於PUBLIC_GROUP對話框不包含occupants_ids,您也不會收到有關消息的推送。

+0

感謝您的回覆。在我的scenero中,作者創建和空發佈聊天,然後其他用戶可以稍後加入,所以用戶列表不會從頭開始清除,所以我不能用戶GROUP對話框,任何其他解決方案? –

+0

如果您想通知您的QuickBlox應用程序中關於創建新的PUBLIC_GROUP的所有用戶,可以使用廣播推送通知。因爲它像往常一樣創建QBEvent,但不設置userIds。 –

0

PUBLIC_GROUPS是開放組。 GROUP和PUBLIC_GROUP的區別在於,它不保留相關參與者的記錄,如user_idsunread_count。您必須將參與者數據存儲在您自己的後端服務器中或本地。