This document describes how to quickly integrate the Tencent Cloud IM SDK (Unreal Engine) to your projects. To configure and integrate the SDK, follow these steps.
Unreal Engine 4.27.1 or later.
Platform | Environment |
---|---|
Android | |
iOS & macOS | |
Windows |
Download the SDK and SDK source code.
Copy the IM SDK
folder to the Source/[project_name] directory of your project ([project_name] is the name of your project).
Add the following function to the [project_name].Build.cs file in your project.
// Load the IM underlying libraries of platforms
private void loadTIMSDK(ReadOnlyTargetRules Target) {
string _TIMSDKPath = Path.GetFullPath(Path.Combine(ModuleDirectory, "TIMSDK"));
bEnableUndefinedIdentifierWarnings = false;
PublicIncludePaths.Add(Path.Combine(_TIMSDKPath, "include"));
if (Target.Platform == UnrealTargetPlatform.Android) {
PrivateDependencyModuleNames.AddRange(new string[] { "Launch" });
AdditionalPropertiesForReceipt.Add(new ReceiptProperty("AndroidPlugin", Path.Combine(ModuleDirectory, "TIMSDK", "Android", "APL_armv7.xml")));
string Architecture = "armeabi-v7a";
// string Architecture = "arm64-v8a";
// string Architecture = "armeabi";
PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory,"TIMSDK", "Android", Architecture, "libImSDK.so"));
}
else if (Target.Platform == UnrealTargetPlatform.IOS) {
PublicAdditionalLibraries.AddRange(
new string[] {
"z","c++",
"z.1.1.3",
"sqlite3",
"xml2"
}
);
PublicFrameworks.AddRange(new string[]{
"Security",
"AdSupport",
"CoreTelephony",
"CoreGraphics",
"UIKit"
});
PublicAdditionalFrameworks.Add(new UEBuildFramework("ImSDK_CPP",_TIMSDKPath+"/ios/ImSDK_CPP.framework.zip", ""));
}
else if(Target.Platform == UnrealTargetPlatform.Mac) {
PublicAdditionalLibraries.AddRange(new string[] {
"resolv",
"z",
"c++",
"bz2",
"sqlite3",
});
PublicFrameworks.AddRange(
new string[] {
"AppKit",
"Security",
"CFNetwork",
"SystemConfiguration",
});
PublicFrameworks.Add(Path.Combine(_TIMSDKPath, "Mac", "Release","ImSDKForMac_CPP.framework"));
}
else if (Target.Platform == UnrealTargetPlatform.Win64) {
PublicAdditionalLibraries.Add(Path.Combine(_TIMSDKPath, "win64", "Release","ImSDK.lib"));
PublicDelayLoadDLLs.Add(Path.Combine(_TIMSDKPath, "win64", "Release", "ImSDK.dll"));
RuntimeDependencies.Add("$(BinaryOutputDir)/ImSDK.dll", Path.Combine(_TIMSDKPath, "win64", "Release", "ImSDK.dll"));
}
}
Call the function in the [project_name].Build.cs file:
You have successfully integrated the IM SDK. You can use IM features in your CPP file via #include "V2TIMManager.h"
.
// Get the SDK singleton object
V2TIMManager* timInstance = V2TIMManager::GetInstance();
// Get the SDK version number
V2TIMString timString = timInstance->GetVersion();
// Initialize the SDK
V2TIMSDKConfig timConfig;
timConfig.initPath = static_cast<V2TIMString>("D:\\");
timConfig.logPath = static_cast<V2TIMString>("D:\\");
bool isInit = timInstance->InitSDK(SDKAppID, timConfig);
For more information on APIs, see API Overview.
Was this page helpful?