initSDK static method
Future<V2TimValueCallback<bool>>
initSDK(
{ - required int sdkAppID,
- required int loglevel,
- String? listenerUuid,
- V2TimSDKListener? listener,
- required int uiPlatform,
- bool? showImLog,
})
Implementation
static Future<V2TimValueCallback<bool>> initSDK({
required int sdkAppID,
required int loglevel,
String? listenerUuid,
V2TimSDKListener? listener,
required int uiPlatform,
bool? showImLog,
}) async {
try {
await copydyliptoSysTempath();
} catch (err) {
print("copy sdk error ${err.toString()}");
}
int data = desktopSDK.InitDartApiDL(NativeApi.initializeApiDLData);
desktopSDK.registerSendPort(_receivePort.sendPort.nativePort);
bool ismac = Platform.isMacOS;
if (!_receivePortListened) {
_receivePort.listen(_handleNativeMessage);
}
_receivePortListened = true;
var spt = ismac ? "/" : "\\";
var paths = Platform.resolvedExecutable.split(spt);
var avpaths = paths.sublist(0, paths.length - 1);
var imPath = normalize(avpaths.join(spt));
var configpath = join(imPath, 'tencent_cloud_chat_config');
var logpath = join(imPath, 'tencent_cloud_chat_xlog');
if (!ismac) {
final String documentsDirectoryPath = "${Platform.environment['USERPROFILE']}";
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String pkgName = packageInfo.packageName;
logpath = join(documentsDirectoryPath, "Documents", ".TencentCloudChat", pkgName, "tencent_cloud_chat_xlog");
configpath = join(documentsDirectoryPath, "Documents", ".TencentCloudChat", pkgName, "tencent_cloud_chat_config");
}
logpath = localConfigPath.isEmpty ? logpath : localConfigPath;
print("current log path is $logpath you can find xlog files here.");
Pointer<Uint8> json_sdk_config = Tools.string2PointerInt8(json.encode({
"sdk_config_config_file_path": localConfigPath.isEmpty ? configpath : localConfigPath,
"sdk_config_log_file_path": logpath,
}));
String userData = Tools.generateUserData();
Pointer<Uint8> user_data = Tools.string2PointerInt8(userData);
if (listener != null) {
timSDKListenerMap.addAll({userData: listener});
}
IMNative.callExperimentalAPI(
api: "internal_operation_set_ui_platform",
param: 27,
);
_TIMSetNetworkStatusListenerCallback(user_data);
_TIMSetKickedOfflineCallback(user_data);
_TIMSetUserSigExpiredCallback(user_data);
_TIMSetSelfInfoUpdatedCallback(user_data);
_TIMSetUserStatusChangedCallback(user_data);
_TIMSetUserInfoChangedCallback(user_data);
int res = desktopSDK.D_TIMInit(sdkAppID, json_sdk_config);
return V2TimValueCallback<bool>.fromJson({
"code": 0,
"desc": res == 0 ? "success" : "error",
"data": res == 0 ? true : false,
});
}