环境 | 版本 |
Unity | 2019.4.15f1 及以上版本。 |
Android | Android Studio 3.5及以上版本,App 要求 Android 4.1及以上版本设备。 |
iOS | Xcode 11.0及以上版本,请确保您的项目已设置有效的开发者签名。 |
平台 | IM SDK |
iOS | 支持 |
Android | 支持 |
macOS | 支持 |
Windows | 支持 |
支持,1.8.1+版本起 |
SDKAppID
。UserID
、签名(Key)
、UserSig
这三个,后续登录时会用到。UserSig
签发方式是由服务器端生成,并提供面向 App 的接口,在需要 UserSig
时由 App 向业务服务器发起请求获取动态 UserSig
。更多详情请参见 服务端生成 UserSig。{"dependencies":{"com.tencent.imsdk.unity":"https://github.com/TencentCloud/chat-sdk-unity.git#unity"}}
TencentIMSDK.Init
,完成 SDK 初始化。SDKAppID
传入。using Com.Tencent.IM.Unity.UIKit;using com.tencent.imsdk.unity;using com.tencent.imsdk.unity.types;using com.tencent.imsdk.unity.enums;namespace Com.Tencent.IM.Unity.UIKit{public static void Init() {string SDKAppID = 0; // 从即时通信 IM 控制台获取应用 SDKAppID。SdkConfig sdkConfig = new SdkConfig();sdkConfig.sdk_config_config_file_path = Application.persistentDataPath + "/TIM-Config";sdkConfig.sdk_config_log_file_path = Application.persistentDataPath + "/TIM-Log";TIMResult res = TencentIMSDK.Init(long.Parse(SDKAppID), sdkConfig);}}
TencentIMSDK.Login
方法,登录一个测试账户。res.code
为0时,登录成功。public static void Login() {if (userid == "" || user_sig == ""){return;}TIMResult res = TencentIMSDK.Login(userid, user_sig, (int code, string desc, string json_param, string user_data)=>{// 处理登陆回调逻辑});}
UserSig
签发方式是将 UserSig
的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig
时由您的 App 向业务服务器发起请求获取动态 UserSig
。更多详情请参见 服务端生成 UserSig。public static void MsgSendMessage() {string conv_id = ""; // c2c 消息会话 ID 为 userID,群消息会话 ID 为 groupIDMessage message = new Message{message_conv_id = conv_id,message_conv_type = TIMConvType.kTIMConv_C2C, // 群消息为TIMConvType.kTIMConv_Groupmessage_elem_array = new List<Elem>{new Elem{elem_type = TIMElemType.kTIMElem_Text,text_elem_content = "这是一个普通文本消息"}}};StringBuilder messageId = new StringBuilder(128); // 承接消息IDTIMResult res = TencentIMSDK.MsgSendMessage(conv_id, TIMConvType.kTIMConv_C2C, message, messageId, (int code, string desc, string json_param, string user_data)=>{// 消息发送异步结果});// 消息发送同步返回的消息ID messageId}
TIMResult res = TencentIMSDK.ConvGetConvList((int code, string desc, List<ConvInfo> info_list, string user_data)=>{// 处理异步逻辑});
TencentIMSDK.SetConvEventCallback((TIMConvEvent conv_event, List<ConvInfo> conv_list, string user_data)=>{// 处理回调逻辑});
// 拉取单聊历史消息// 首次拉取,不需要填msg_getmsglist_param_last_msg,不填则默认拉取最新消息Message LastMessage = null;string LastMessageID = "";var get_message_list_param = new MsgGetMsgListParam();TIMResult res = TencentIMSDK.MsgGetMsgList(conv_id, TIMConvType.kTIMConv_C2C, get_message_list_param, (params object[] parameters) => {// 处理回调逻辑List<Message> messages = Utils.FromJson<List<Message>>((string)parameters[1]);if (messages.Count > 0){LastMessage = messages[messages.Count - 1];LastMessageID.text = messages[messages.Count - 1].message_msg_id;}else {LastMessage = null;LastMessageID.text = "";}});// 再次拉取时,msg_getmsglist_param_last_msg 可以使用返回的消息列表中的最后一条消息var get_message_list_param = new MsgGetMsgListParam{msg_getmsglist_param_last_msg = LastMessage};TIMResult res = TencentIMSDK.MsgGetMsgList(conv_id, TIMConvType.kTIMConv_Group, get_message_list_param, (int code, string desc, string user_data) => {// 处理回调逻辑});
TencentIMSDK.AddRecvNewMsgCallback
。AddRecvNewMsgCallback
回调被触发后,您可以按需将新消息添加进历史消息列表中。TencentIMSDK.AddRecvNewMsgCallback((List<Message> message, string user_data) => {// 处理新消息});
1.8.1
版本起支持构建 WebGL。index.html
,并引入这四个JS文件。如下:<script src="./index.js"></script><script src="./modules/group-module.js"></script><script src="./modules/relationship-module.js"></script><script src="./modules/signaling-module.js"></script>
|| VersionControlSettings.mode != "Visible Meta Files"
这部分代码删除即可。
本页内容是否解决了您的问题?