addAttributes method

Future<Map<String, int>?> addAttributes(
  1. String roomId,
  2. {required Map<String, String> attributes,
  3. bool deleteWhenLeft = false,
  4. bool overwrite = false}
)

设置自定义聊天室属性。

Param roomId 聊天室 ID。

Param attributes 要添加的聊天室属性。属性采用键值格式。

Param deleteWhenLeft 退出聊天室时是否删除该成员设置的聊天室属性。

Param overwrite 是否覆盖其他人设置的相同键的属性。

Return ' failureKeys map '以键值格式返回,其中键是属性键,值是失败的原因。

Throws 如果有异常会在这里抛出,包含错误码和错误描述,详见 EMError

Implementation

Future<Map<String, int>?> addAttributes(
  String roomId, {
  required Map<String, String> attributes,
  bool deleteWhenLeft = false,
  bool overwrite = false,
}) async {
  Map req = {
    "roomId": roomId,
    "attributes": attributes,
    "autoDelete": deleteWhenLeft,
    "forced": overwrite,
  };

  Map result = await _channel.invokeMethod(
    ChatMethodKeys.setChatRoomAttributes,
    req,
  );
  try {
    EMError.hasErrorFromResult(result);
    return result[ChatMethodKeys.setChatRoomAttributes]?.cast<String, int>();
  } on EMError catch (e) {
    throw e;
  }
}