xxim_sdk_flutter 1.0.3 copy "xxim_sdk_flutter: ^1.0.3" to clipboard
xxim_sdk_flutter: ^1.0.3 copied to clipboard

Xingxing is a 100% open source social platform, where everyone can build their own server and control the ownership of data.

example/README.md

xxim-sdk-flutter #

pub support commit forks stars

支持Flutter6端开发。惺惺是一个100%开源社交平台,每个人都可以搭建自己的服务器,掌握数据的所有权。

初始化 #

 XXIMSDK sdk = XXIMSDK();
 sdk.init(
   directory: "",
   requestTimeout: const Duration(seconds: 10),
   rsaPublicKey: "",
   aesKey: "",
   cxnParams: CxnParams(
     deviceModel: "",
     deviceId: "",
     osVersion: "",
     platform: "",
     appVersion: "",
     language: "",
     networkUsed: "",
     ext: "",
   ),
   autoPullTime: const Duration(seconds: 20),
   pullMsgCount: 50,
   isarSchemas: [],
   isarMaxSizeMiB: Isar.defaultMaxSizeMiB,
   isarInspector: false,
   connectListener: ConnectListener(
     onConnecting: () {},
     onSuccess: () {},
     onClose: (code, error) {},
   ),
   subscribeCallback: SubscribeCallback(
     onConvParams: () async {
       return {"": const AesParams(key: "", iv: "")};
     },
   ),
   isarListener: IsarListener(
     onCreate: (isar) {},
   ),
   pullListener: PullListener(
     onStart: () {},
     onEnd: () {},
   ),
   convListener: ConvListener(
     onUpdate: () {},
   ),
   msgListener: MsgListener(
     onReceive: (msgModelList) {},
   ),
   noticeListener: NoticeListener(
     onReceive: (noticeModel) async {
       return true;
     },
   ),
   unreadListener: UnreadListener(
     onUnreadCount: (count) {},
   ),
 );

连接 #

 sdk.connect("");

断连 #

 sdk.disconnect();

是否连接 #

 sdk.isConnect();

设置连接参数 #

 sdk.setCxnParams(
   rsaPublicKey: "",
   aesKey: "",
   cxnParams: cxnParams,
 );

设置用户参数 #

 sdk.setUserParams(
   userId: "",
   token: "",
   ext: utf8.encode(""),
   isarName: "",
   convParams: {},
 );

打开拉取订阅 #

 sdk.openPullSubscribe(
   convParams: {},
 );

关闭拉取订阅 #

 sdk.closePullSubscribe();

自定义请求 #

 List<int>? resp = await sdk.customRequest(
   method: "",
   bytes: [],
 );

会话管理 #

获取会话列表 #

 List<ConvModel> convList = await sdk.convManager.getConvList();

获取单条会话 #

 ConvModel? convModel = await sdk.convManager.getSingleConv(
   convId: "",
 );

设置会话已读 #

 sdk.convManager.setConvRead(
   convId: "",
   isSync: true ?? false,
 );

更新会话消息 #

 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: "",
   contentType: ContentType.text,
   maxSeq: null,
   size: 25,
 );

获取首个消息 #

 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: "",
 );

发送正在输入 #

 bool status = await sdk.msgManager.sendTyping(
   convId: "",
   content: TypingContent(
     focus: true ?? false,
   ),
   ext: "",
 );

发送提示消息 #

 bool status = await sdk.msgManager.sendTip(
   convId: "",
   content: TipContent(
     tip: "",
     ext: "",
   ),
   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.createRichText(...);
 MsgModel msgModel = await sdk.msgManager.createMarkdown(...);
 MsgModel msgModel = await sdk.msgManager.createCustom(...);

发送消息列表 #

 bool status = await sdk.msgManager.sendMsgList(
   senderInfo: "",
   msgModelList: [],
   deliverAfter: 0,
 );

发送已读消息 #

  bool status = await sdk.msgManager.sendReadMsg(
    content: ReadContent(
     convId: "",
     seq: 0,
   ),
  );

发送撤回消息 #

  bool status = await sdk.msgManager.sendRevokeMsg(
    clientMsgId: "",
    content: TipContent(
      tip: "",
      ext: "",
    ),
  );

发送编辑消息 #

  bool status = await sdk.msgManager.sendEditMsg(
    msgModel: msgModel,
  );

更新插入消息 #

 sdk.msgManager.upsertMsg(
   msgModel: msgModel,
   includeMsgConv: true ?? false,
 );

删除消息 #

 sdk.msgManager.deleteMsg(
   clientMsgId: "",
 );

清空消息 #

 sdk.msgManager.clearMsg(
   convId: "",
 );

通知管理 #

获取通知列表 #

 List<NoticeModel> noticeList = await sdk.noticeManager.getNoticeList(
   convId: "",
   offset: 0,
   limit: 25,
 );

获取单条通知 #

 NoticeModel? noticeModel = await sdk.noticeManager.getSingleNotice(
   noticeId: "",
 );

获取多条通知 #

 List<NoticeModel> noticeList = await sdk.noticeManager.getMultipleNotice(
   noticeIdList: [],
 );

删除通知 #

 sdk.noticeManager.deleteNotice(
   noticeId: "",
 );

清空通知 #

 sdk.noticeManager.clearNotice(
   convId: "",
 );
1
likes
140
points
41
downloads

Publisher

verified publishercherish.chat

Weekly Downloads

Xingxing is a 100% open source social platform, where everyone can build their own server and control the ownership of data.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

encrypt, flutter, hive, isar, isar_flutter_libs, uuid, xxim_core_flutter

More

Packages that depend on xxim_sdk_flutter