2017-08-08 81 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。您必须将参与者数据存储在您自己的后端服务器中或本地。