环信php创建群组,群组@功能
群組中,@某人的和群組普通消息沒有區(qū)別,只是針對被@的用戶在 UI 上顯示會有不同。可以通過環(huán)信的擴展消息來實現(xiàn)。
發(fā)送方將想要@的人的環(huán)信 ID 通過擴展字段放到擴展消息中,并把消息發(fā)到群里。
群中成員在收到消息時,先檢查擴展字段中是否有對應的字段,如果有,取出其中的環(huán)信 ID。
檢查取出的環(huán)信 ID 與當前登錄的環(huán)信 ID 是否一致。
如果檢測一致,需要在 UI 上做特殊處理,顯示出對應的提示信息,如“[有人@我]“,如不一致,不做處理。
發(fā)送方具體舉例:
iOS:
// @某些人
message.ext = @{@"em_at_list":@[@"6001",@"6002"]}; // @6001,6002
Android:
List atMembers = new ArrayList();
atMembers.Add("6001");
atMembers.Add("6002");
JSONArray atJson = new JSONArray(atMembers);
// 設置消息的擴展為@群成員類型
message.setAttribute("em_at_list", atJson); // @6001,6002
接收方具體舉例:
iOS:
-(void)didReceiveMessage:(EMMessage *)message{
// 獲取當前登錄用戶環(huán)信ID
NSString *currentUserId = [[[EaseMob sharedInstance].chatManager loginInfo] objectForKey: kSDKUsername];
// 被@用戶環(huán)信ID
NSArray *atList = [message.ext objectForKey:@"em_at_list"];
for (NSString *atName in atList) {
if (atName isEqualToString:currentUserId) {
// 當前用戶被@,需要單獨處理UI
}
}
}
Android:
@Override
public void onEvent(EMNotifierEvent event) {
switch (event.getEvent()) {
case EventNewMessage:
// 獲取當前登錄用戶環(huán)信ID
String currentUserId = EMChatManager.getInstance().getCurrentUser();
// 獲取到message
EMMessage message = (EMMessage) event.getData();
try {
JSONArray atJson = message.getJSONArrayAttribute("em_at_list"); // 被@用戶列表,如果當前用戶被@,需要ui特殊顯示
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
總結
以上是生活随笔為你收集整理的环信php创建群组,群组@功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: No constructor found
- 下一篇: suppo aaa 0.75-php,f