支持Flutter6端开发。惺惺是一个100%开源社交平台,每个人都可以搭建自己的服务器,掌握数据的所有权。
它是空安全的,为什么没有空安全标识?
问题参考:Flutter Issues
问题参考:Pana Issues
放心使用,因为它:💪 Building with sound null safety 💪
XXIMSDK sdk = XXIMSDK();
sdk.init(
params: Params(
deviceModel: "",
deviceId: "",
osVersion: "",
platform: "",
appVersion: "",
language: "",
),
autoPullTime: const Duration(seconds: 20),
pullMsgCount: 200,
isarSchemas: [],
isarMaxSizeMiB: 2048,
isarDirectory: "",
isarInspector: false,
subscribeCallback: SubscribeCallback(
onConvIdList: () async {
return [];
},
onConvAESParams: (convIdList) async {
return {};
},
),
isarListener: IsarListener(
onCreate: (isar) {},
),
connectListener: ConnectListener(
onConnecting: () {},
onSuccess: () {},
onClose: ({error}) {},
),
pullListener: PullListener(
onStart: () {},
onEnd: () {},
),
convListener: ConvListener(
onUpdate: () {},
),
msgListener: MsgListener(
onReceive: (msgModelList) {},
),
noticeListener: NoticeListener(
onReceive: (noticeModelList) async {
return true;
},
),
unreadListener: UnreadListener(
onUnreadCount: (count) {},
),
);
sdk.login(
apiUrl: "",
wsUrl: "",
token: "",
userId: "",
networkUsed: "",
isarName: "",
convIdList: [],
);
sdk.logout();
sdk.connect(
apiUrl: "",
wsUrl: "",
token: "",
userId: "",
networkUsed: "",
convIdList: [],
);
sdk.disconnect();
sdk.isConnect();
sdk.setLanguage("");
sdk.openPullSubscribe(
convIdList: [],
);
sdk.closePullSubscribe();
List<ConvModel> convList = await sdk.convManager.getConvList();
ConvModel? convModel = await sdk.convManager.getSingleConv(
convId: "",
);
sdk.convManager.setConvRead(
convId: "",
);
sdk.convManager.updateConvMsg(
convId: "",
);
sdk.convManager.deleteConvMsg(
convId: "",
);
sdk.convManager.updateConvNotice(
convId: "",
);
sdk.convManager.deleteConvNotice(
convId: "",
);
sdk.convManager.setConvDraft(
convId: "",
draftModel: DraftModel(
content: "",
ext: "",
),
);
sdk.convManager.setConvHidden(
convId: "",
hidden: true ?? false,
);
sdk.convManager.deleteConv(
convId: "",
clear: true ?? false,
);
int unreadCount = await sdk.convManager.getUnreadCount();
List<MsgModel> msgList = await sdk.msgManager.getMsgList(
convId: "",
);
MsgModel? msgModel = await sdk.msgManager.getFirstMsg(
convId: "",
);
MsgModel? msgModel = await sdk.msgManager.getSingleMsg(
clientMsgId: "",
);
List<MsgModel> msgList = await sdk.msgManager.getMultipleMsg(
clientMsgIdList: [],
);
MsgModel? msgModel = await sdk.msgManager.pullCloudMsg(
clientMsgId: "",
push: true ?? false,
);
bool status = await sdk.msgManager.sendTyping(
convId: "",
content: TypingContent(
focus: true ?? false,
),
ext: "",
);
bool status = await sdk.msgManager.sendRead(
convId: "",
content: ReadContent(
seq: 0,
),
storageForServer: true ?? false,
storageForClient: true ?? false,
ext: "",
);
bool status = await sdk.msgManager.sendRevoke(
clientMsgId: "",
content: RevokeContent(
content: "",
),
ext: "",
);
MsgModel msgModel = await sdk.msgManager.createText(...);
MsgModel msgModel = await sdk.msgManager.createImage(...);
MsgModel msgModel = await sdk.msgManager.createAudio(...);
MsgModel msgModel = await sdk.msgManager.createVideo(...);
MsgModel msgModel = await sdk.msgManager.createFile(...);
MsgModel msgModel = await sdk.msgManager.createLocation(...);
MsgModel msgModel = await sdk.msgManager.createCard(...);
MsgModel msgModel = await sdk.msgManager.createMerge(...);
MsgModel msgModel = await sdk.msgManager.createEmoji(...);
MsgModel msgModel = await sdk.msgManager.createCommand(...);
MsgModel msgModel = await sdk.msgManager.createRichTxt(...);
MsgModel msgModel = await sdk.msgManager.createMarkdown(...);
MsgModel msgModel = await sdk.msgManager.createCustom(...);
bool status = await sdk.msgManager.sendMsgList(
senderInfo: "",
msgModelList: [],
deliverAfter: 0,
);
sdk.msgManager.upsertMsg(
msgModel: msgModel,
includeMsgConv: true ?? false,
);
sdk.msgManager.deleteMsg(
clientMsgId: "",
);
sdk.msgManager.clearMsg(
convId: "",
);
List<NoticeModel> noticeList = await sdk.noticeManager.getNoticeList(
convId: "",
);
NoticeModel? noticeModel = await sdk.noticeManager.getSingleMsg(
noticeId: "",
);
List<NoticeModel> noticeList = await sdk.noticeManager.getMultipleMsg(
noticeIdList: [],
);
sdk.noticeManager.deleteNotice(
noticeId: "",
);
sdk.noticeManager.clearNotice(
convId: "",
);