getMessageModel method
Implementation
WKMessageContent? getMessageModel(int type, dynamic json) {
WKMessageContent? content;
if (_msgContentList.containsKey(type)) {
var messageCreateCallback = _msgContentList[type];
if (messageCreateCallback != null) {
content = messageCreateCallback(json);
}
}
content ??= WKUnknownContent();
// 回复
var replyJson = json['reply'];
if (replyJson != null) {
var reply = WKReply().decode(replyJson);
content.reply = reply;
}
// var entities = WKDBConst.readString(json, 'entities');
var jsonArray = json['entities'];
if (jsonArray != null && jsonArray is List) {
// var jsonArray = jsonDecode(entities);
List<WKMsgEntity> list = [];
for (var entityJson in jsonArray) {
WKMsgEntity entity = WKMsgEntity();
entity.type = WKDBConst.readString(entityJson, 'type');
entity.offset = WKDBConst.readInt(entityJson, 'offset');
entity.length = WKDBConst.readInt(entityJson, 'length');
entity.value = WKDBConst.readString(entityJson, 'value');
list.add(entity);
}
content.entities = list;
}
// 解析艾特
var mentionJson = json['mention'];
if (mentionJson != null) {
var mentionInfo = WKMentionInfo();
var mentionAll = WKDBConst.readInt(mentionJson, 'all');
var uidList = mentionJson['uids'];
if (uidList != null && uidList is List) {
List<String> uids = [];
for (var uid in uidList) {
uids.add(uid);
if (uid == WKIM.shared.options.uid) {
mentionInfo.isMentionMe = true;
}
}
mentionInfo.uids = uids;
}
if (mentionAll == 1) {
mentionInfo.mentionAll = true;
mentionInfo.isMentionMe = true;
}
content.mentionInfo = mentionInfo;
}
return content;
}