fix:update send message api

This commit is contained in:
SL 2024-07-09 14:53:46 +08:00
parent e2747b1f67
commit 65f0a819ac
5 changed files with 47 additions and 27 deletions

View File

@ -1,5 +1,3 @@
import 'dart:ffi';
import 'package:example/const.dart';
import 'package:flutter/material.dart';
import 'package:wukongimfluttersdk/entity/channel.dart';
@ -9,7 +7,6 @@ import 'package:wukongimfluttersdk/proto/proto.dart';
import 'package:wukongimfluttersdk/type/const.dart';
import 'package:wukongimfluttersdk/wkim.dart';
import 'custom_message.dart';
import 'msg.dart';
class ChatPage extends StatelessWidget {
@ -399,8 +396,11 @@ class ChatListDataState extends State<ChatList> {
mentionInfo.uids = ['uid_1', 'uid_2'];
text.mentionInfo = mentionInfo;
// CustomMsg customMsg = CustomMsg(content);
WKIM.shared.messageManager.sendMessageWithSetting(
text, WKChannel(channelID, channelType), setting);
var option = WKSendOptions();
option.setting = setting;
WKIM.shared.messageManager.sendWithOption(
text, WKChannel(channelID, channelType), option);
// WKImageContent imageContent = WKImageContent(100, 200);
// imageContent.localPath = 'addskds';
// WKIM.shared.messageManager.sendMessage(

View File

@ -72,7 +72,7 @@ class WKMsg {
}
class MessageHeader {
bool redDot = false; //
bool redDot = true; //
bool noPersist = false; //
bool syncOnce = false; //
}
@ -295,3 +295,10 @@ class WKMentionInfo {
bool mentionAll = false;
List<String>? uids;
}
class WKSendOptions {
MessageHeader header = MessageHeader();
Setting setting = Setting();
int expire = 0;
String topicID = "";
}

View File

@ -403,6 +403,7 @@ class WKConnectionManager {
packet.clientSeq = wkMsg.clientSeq;
packet.clientMsgNO = wkMsg.clientMsgNO;
packet.topic = wkMsg.topicID;
packet.expire = wkMsg.expireTime;
packet.payload = wkMsg.content;
_addSendingMsg(packet);
_sendPacket(packet);
@ -500,11 +501,10 @@ class WKConnectionManager {
int isDelete = 0;
if (jsonObject != null) {
var visibles = jsonObject['visibles'];
if (visibles != null) {
if (visibles != null && visibles is List) {
bool isIncludeLoginUser = false;
var uids = visibles as List<String>;
for (int i = 0, size = uids.length; i < size; i++) {
if (uids[i] == WKIM.shared.options.uid) {
for (int i = 0, size = visibles.length; i < size; i++) {
if (visibles[i] == WKIM.shared.options.uid) {
isIncludeLoginUser = true;
break;
}

View File

@ -68,7 +68,7 @@ class WKMessageManager {
}
// var entities = WKDBConst.readString(json, 'entities');
var jsonArray = json['entities'];
if (jsonArray != null) {
if (jsonArray != null && jsonArray is List) {
// var jsonArray = jsonDecode(entities);
List<WKMsgEntity> list = [];
for (var entityJson in jsonArray) {
@ -87,7 +87,7 @@ class WKMessageManager {
var mentionInfo = WKMentionInfo();
var mentionAll = WKDBConst.readInt(mentionJson, 'all');
var uidList = mentionJson['uids'];
if (uidList != null) {
if (uidList != null && uidList is List) {
List<String> uids = [];
for (var uid in uidList) {
uids.add(uid);
@ -554,25 +554,20 @@ class WKMessageManager {
}
sendMessage(WKMessageContent messageContent, WKChannel channel) async {
var header = MessageHeader();
header.redDot = true;
sendMessageWithSettingAndHeader(messageContent, channel, Setting(), header);
sendWithOption(messageContent, channel, WKSendOptions());
}
sendMessageWithSetting(
WKMessageContent messageContent, WKChannel channel, Setting setting) {
var header = MessageHeader();
header.redDot = true;
sendMessageWithSettingAndHeader(messageContent, channel, setting, header);
}
sendMessageWithSettingAndHeader(WKMessageContent messageContent,
WKChannel channel, Setting setting, MessageHeader header) async {
sendWithOption(WKMessageContent messageContent, WKChannel channel,
WKSendOptions options) async {
WKMsg wkMsg = WKMsg();
wkMsg.setting = setting;
wkMsg.header = header;
wkMsg.setting = options.setting;
wkMsg.header = options.header;
wkMsg.messageContent = messageContent;
wkMsg.topicID = messageContent.topicId;
wkMsg.topicID = options.topicID;
wkMsg.expireTime = options.expire;
if (wkMsg.expireTime > 0) {
wkMsg.expireTimestamp = wkMsg.timestamp + wkMsg.expireTime;
}
wkMsg.channelID = channel.channelID;
wkMsg.channelType = channel.channelType;
wkMsg.fromUID = WKIM.shared.options.uid!;
@ -633,6 +628,23 @@ class WKMessageManager {
}
}
@Deprecated('use sendWithOption')
sendMessageWithSetting(
WKMessageContent messageContent, WKChannel channel, Setting setting) {
var header = MessageHeader();
header.redDot = true;
sendMessageWithSettingAndHeader(messageContent, channel, setting, header);
}
@Deprecated('use sendWithOption')
sendMessageWithSettingAndHeader(WKMessageContent messageContent,
WKChannel channel, Setting setting, MessageHeader header) async {
var options = WKSendOptions();
options.setting = setting;
options.header = header;
sendWithOption(messageContent, channel, options);
}
String _getSendPayload(WKMsg wkMsg) {
dynamic json = wkMsg.messageContent!.encodeJson();
json['type'] = wkMsg.contentType;

View File

@ -3,6 +3,7 @@ import 'package:wukongimfluttersdk/entity/msg.dart';
class WKMessageContent {
var contentType = 0;
String content = "";
@Deprecated('Mark with WKSendOptions')
String topicId = "";
WKReply? reply;
List<WKMsgEntity>? entities;