invite method
Future<V2TimValueCallback<String> >
invite({
- required String invitee,
- required String data,
- int timeout = 30,
- bool onlineUserOnly = false,
- OfflinePushInfo? offlinePushInfo,
Implementation
Future<V2TimValueCallback<String>> invite({
required String invitee,
required String data,
int timeout = 30,
bool onlineUserOnly = false,
OfflinePushInfo? offlinePushInfo,
}) async {
if (!TIMManager.instance.isInitSDK()) {
return V2TimValueCallback<String>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
}
String userData = Tools.generateUserData('invite');
Completer<V2TimValueCallback<String>> completer = Completer();
String inviteID = '';
void handleApiCallback(Map jsonResult) {
V2TimValueCallback<String> callbackResult = V2TimValueCallback<String>.fromJson(jsonResult);
callbackResult.data = inviteID;
completer.complete(callbackResult);
}
NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);
Pointer<Char> pInvitee = Tools.string2PointerChar(invitee);
Pointer<Char> pData = Tools.string2PointerChar(data);
Pointer<Char> pOfflinePushInfo = Tools.string2PointerChar(json.encode(offlinePushInfo?.toJson() ?? {}));
Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
Pointer<Char> pInviteID = NativeLibraryManager.bindings.DartInvite(pInvitee, pData, onlineUserOnly, pOfflinePushInfo, timeout, Pointer<Char>.fromAddress(0), pUserData);
inviteID = Tools.pointerChar2String(pInviteID);
return completer.future;
}