Пример #1
0
        /// <summary>
        /// 群发消息
        /// </summary>
        /// <param name="msg">群发消息</param>
        /// <param name="handler">群发消息成功与否的回调</param>
        public static TIMResult IMTIMMsgBatchSend(MsgBatchSendParam msg, MsgBatchSendDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMMsgBatchSend(JsonConvert.SerializeObject(msg), MsgBatchSendDelgateResultCallBack, ptr));
        }
Пример #2
0
        /// <summary>
        /// 删除指定会话的消息。
        /// 当设置kTIMMsgDeleteParamMsg时,在会话中删除指定本地消息。
        /// 当未设置kTIMMsgDeleteParamMsg时,kTIMMsgDeleteParamIsRamble为 false 表示删除会话所有本地消息,true 表示删除会话所有漫游消息(删除漫游消息暂时不支持)。
        /// 一般直接使用保存的消息 JSON,或者通过消息定位符查找得到的 JSON。不用删除的时候构造消息 JSON。
        /// </summary>
        /// <param name="conv_id">会话的 ID</param>
        /// <param name="iMConvType">会话类型,请参考 TIMConvType</param>
        /// <param name="msg">消息获取参数</param>
        /// <param name="handler">删除指定会话的消息成功与否的回调</param>
        public static TIMResult IMMsgDelete(string conv_id, TIMConvType iMConvType, MsgDeleteParam msg, MsgDeleteDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMMsgDelete(conv_id, iMConvType, JsonConvert.SerializeObject(msg), MsgDeleteDelgateResultCallBack, ptr));
        }
Пример #3
0
        /// <summary>
        /// 下载消息内元素到指定文件路径(图片、视频、音频、文件)。
        /// </summary>
        /// <param name="downloadElemParam">下载的参数</param>
        /// <param name="savePath">下载文件保存路径</param>
        /// <param name="handler">下载成功与否的回调以及下载进度回调</param>
        public static TIMResult IMMsgDownloadElemToPath(DownloadElemParam downloadElemParam, string savePath, MsgDownloadElemToPathDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMMsgDownloadElemToPath(JsonConvert.SerializeObject(downloadElemParam), savePath, MsgDownloadElemToPathDelgateResultCallBack, ptr));
        }
Пример #4
0
        /// <summary>
        /// 修改群信息
        /// 修改群主(群转让)的权限说明:
        /// 只有群主才有权限进行群转让操作。
        /// 直播大群不能进行群转让操作。
        /// 修改群其他信息的权限说明:
        /// 对于公开群、聊天室和直播大群,只有群主或者管理员可以修改群简介。
        /// 对于私有群,任何人可修改群简介。
        /// kTIMGroupModifyInfoParamModifyFlag可以按位或设置多个值。不同的 flag 设置不同的键,详情请参考 GroupModifyInfoParam。
        /// </summary>
        /// <param name="groupModifyInfoParam">设置群信息参数</param>
        /// <param name="handler">设置群信息成功与否的回调</param>
        public static TIMResult IMGroupModifyGroupInfo(GroupModifyInfoParam groupModifyInfoParam, GroupModifyGroupInfoDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupModifyGroupInfo(JsonConvert.SerializeObject(groupModifyInfoParam), GroupModifyGroupInfoCallBack, ptr));
        }
Пример #5
0
        /// <summary>
        /// 处理群未决信息。
        /// 对于群的未决信息,IM SDK 增加了处理接口。审批人可以选择对单条信息进行同意或者拒绝。已处理成功过的未决信息不能再次处理。
        /// 处理未决信息时需要带一个未决信息 GroupPendency,可以在接口 TIMGroupGetPendencyList 返回的未决信息列表将未决信息保存下来,
        /// 在处理未决信息的时候将 GroupPendency 传入键kTIMGroupHandlePendencyParamPendency。
        /// </summary>
        /// <param name="groupPendencyParam">处理群未决信息参数的</param>
        /// <param name="handler">处理群未决信息成功与否的回调</param>
        public static TIMResult IMGroupHandlePendency(GroupPendency groupPendencyParam, GroupHandlePendencyDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupHandlePendency(JsonConvert.SerializeObject(groupPendencyParam), GroupHandlePendencyCallBack, ptr));
        }
Пример #6
0
        /// <summary>
        /// 退出群组
        /// 对于私有群,全员可退出群组。
        /// 对于公开群、聊天室和直播大群,群主不能退出。
        /// 退出指定群组 group_id 的接口
        /// </summary>
        /// <param name="group_id">要退出的群组 ID</param>
        /// <param name="handler">退出群组成功与否的回调</param>
        public static TIMResult IMGroupQuit(string group_id, GroupQuitDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupQuit(group_id, GroupQuitCallBack, ptr));
        }
Пример #7
0
        /// <summary>
        /// 获取已加入群组列表。
        /// 此接口可以获取自己所加入的群列表。
        /// 此接口只能获得加入的部分直播大的列表。
        /// 此接口用于获取当前用户已加入的群组列表,返回群组的基础信息。
        /// </summary>
        /// <param name="handler">获取已加入群组列表成功与否的回调</param>
        public static void IMGroupGetJoinedGroupList(GroupGetJoinedGroupListDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            TIMClientAPIDef.TIMGroupGetJoinedGroupList(GroupGetJoinedGroupListCallBack, ptr);
        }
Пример #8
0
        /// <summary>
        /// 删除会话
        /// </summary>
        /// <param name="conv_id">会话的 ID</param>
        /// <param name="iMConvType">会话类型,请参考 TIMConvType</param>
        /// <param name="handler">删除会话成功与否的回调</param>
        public static TIMResult IMConvDelete(string conv_id, TIMConvType iMConvType, ConvDeleteDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMConvDelete(conv_id, iMConvType, ConvDeleteResultCallBack, ptr));
        }
Пример #9
0
        /// <summary>
        /// 获取最近联系人的会话列表。
        /// </summary>
        /// <param name="handler">获取最近联系人会话列表的回调</param>
        public static TIMResult IMConvGetConvList(ConvGetConvListDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMConvGetConvList(ConvGetConvListResultCallBack, ptr));
        }
Пример #10
0
 /// <summary>
 /// TIM卸载
 /// </summary>
 /// <returns></returns>
 public static TIMResult IMUninit()
 {
     return((TIMResult)TIMClientAPIDef.TIMUninit());
 }
Пример #11
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="user_id">用户的 UserID</param>
        /// <param name="user_sig">用户的 UserSig</param>
        /// <param name="handler">登录成功与否的回调。回调函数定义请参考 TIMCommCallback</param>
        public static TIMResult IMLogin(string user_id, string user_sig, LoginResultDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMLogin(user_id, user_sig, LoginResultCallBack, ptr));
        }
Пример #12
0
 /// <summary>
 /// TIM初始化
 /// </summary>
 /// <param name="sdk_app_id">官网申请的SDKAPPID</param>
 /// <param name="json_sdk_config">IM SDK配置</param>
 /// <returns>返回 TIM_SUCC 表示接口调用成功,其他值表示接口调用失败。每个返回值的定义请参考 TIMResult</returns>
 public static TIMResult IMInit(int sdk_app_id, SdKConfig json_sdk_config = null)
 {
     return((TIMResult)TIMClientAPIDef.TIMInit((ulong)sdk_app_id, json_sdk_config != null? JsonConvert.SerializeObject(json_sdk_config):null));
 }
Пример #13
0
 /// <summary>
 /// 获取SDK版本信息
 /// </summary>
 /// <returns></returns>
 public static string IMGetSDKVersion()
 {
     return(TIMClientAPIDef.TIMGetSDKVersion());
 }
Пример #14
0
        /// <summary>
        /// 获取指定用户列表的个人资料
        /// </summary>
        /// <param name="getProfileListParam">用户参数</param>
        /// <param name="handler">获取指定用户列表的用户资料成功与否的回调</param>
        /// <returns></returns>
        public static TIMResult IMProfileGetUserProfileList(GetProfileListParam getProfileListParam, UserProfileHandleDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMProfileGetUserProfileList(JsonConvert.SerializeObject(getProfileListParam), UserProfileHandleCallBack, ptr));
        }
Пример #15
0
        /// <summary>
        /// 创建群组
        /// </summary>
        /// <param name="createGroupParam">创建群组的参数</param>
        /// <param name="handler">创建群组成功与否的回调</param>
        public static TIMResult IMGroupCreate(CreateGroupParam createGroupParam, GroupCreateDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupCreate(JsonConvert.SerializeObject(createGroupParam), GroupCreateResultCallBack, ptr));
        }
Пример #16
0
 /// <summary>
 /// 设置指定会话的草稿。
 /// </summary>
 /// <param name="conv_id">会话ID</param>
 /// <param name="iMConvType">会话类型</param>
 /// <param name="handler"></param>
 public static TIMResult IMConvSetDraft(string conv_id, TIMConvType iMConvType, Draft user_draft)
 {
     return((TIMResult)TIMClientAPIDef.TIMConvSetDraft(conv_id, iMConvType, JsonConvert.SerializeObject(user_draft)));
 }
Пример #17
0
        /// <summary>
        /// 申请加入群组。
        /// 私有群不能由用户主动申请入群。
        /// 公开群和聊天室可以主动申请进入。
        /// 如果群组设置为需要审核,申请后管理员和群主会受到申请入群系统消息,
        /// 需要等待管理员或者群主审核,如果群主设置为任何人可加入,则直接入群成功。直播大群可以任意加入群组。
        /// 申请加入指定群组 group_id 的接口,申请加入的操作成功与否可根据回调 cb 的参数判断
        /// </summary>
        /// <param name="group_id">要加入的群组 ID</param>
        /// <param name="hello_msg">申请理由(选填</param>
        /// <param name="handler">申请加入群组成功与否的回调</param>
        public static TIMResult IMGroupJoin(string group_id, string hello_msg, GroupJoinDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupJoin(group_id, hello_msg, GroupJoinCallBack, ptr));
        }
Пример #18
0
 /// <summary>
 /// 删除指定会话的草稿。
 /// </summary>
 /// <param name="conv_id">会话的 ID</param>
 /// <param name="iMConvType">会话类型,请参考 TIMConvType</param>
 /// <returns></returns>
 public static TIMResult IMConvCancelDraft(string conv_id, TIMConvType iMConvType)
 {
     return((TIMResult)TIMClientAPIDef.TIMConvCancelDraft(conv_id, iMConvType));
 }
Пример #19
0
        /// <summary>
        /// 删除群组成员
        /// 对于私有群:只有创建者可删除群组成员。
        /// 对于公开群和聊天室:只有管理员和群主可以踢人。
        /// 对于直播大群:不能踢人。
        /// </summary>
        /// <param name="groupDeleteMemberParam">删除组员参数</param>
        /// <param name="handler">删除群组成员成功与否的回调</param>
        public static TIMResult IMGroupDeleteMember(GroupDeleteMemberParam groupDeleteMemberParam, GroupDeleteMemberDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupDeleteMember(JsonConvert.SerializeObject(groupDeleteMemberParam), GroupDeleteMemberCallBack, ptr));
        }
Пример #20
0
        /// <summary>
        /// 消息上报已读。
        /// </summary>
        /// <param name="conv_id">会话的 ID</param>
        /// <param name="iMConvType">会话类型,请参考 TIMConvType</param>
        /// <param name="msg">可以填NULL空字符串指针或者""空字符串,
        /// 此时以会话当前最新消息的时间戳(如果会话存在最新消息)或当前时间为已读时间戳上报。
        /// 当要指定消息时,则以该指定消息的时间戳为已读时间戳上报,最好用接收新消息获取的消息数组里面的消息 JSON 或者用消息定位符查找到的消息 JSON,避免重复构造消息 JSON。</param>
        /// <param name="handler">上报已读回调</param>
        public static TIMResult IMMsgReportReaded(string conv_id, TIMConvType iMConvType, IMessage msg, MsgReportReadedDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMMsgReportReaded(conv_id, iMConvType, JsonConvert.SerializeObject(msg), MsgReportReadedResultCallBack, ptr));
        }
Пример #21
0
        /// <summary>
        /// 获取群组信息列表
        /// </summary>
        /// <param name="group_id_arry">获取的群组详情ID集合</param>
        /// <param name="handler">获取群组信息列表成功与否的回调</param>
        public static TIMResult IMGroupGetGroupInfoList(List <string> group_id_arry, GroupGetGroupInfoListDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupGetGroupInfoList(JsonConvert.SerializeObject(group_id_arry), GroupGetGroupInfoListCallBack, ptr));
        }
Пример #22
0
        /// <summary>
        /// 导入消息列表到指定会话。
        /// 批量导入消息,可以自己构造消息去导入。也可以将之前要导入的消息数组 JSON 保存,然后导入的时候直接调用接口,避免构造消息数组。
        /// </summary>
        /// <param name="conv_id">会话的 ID</param>
        /// <param name="iMConvType">会话类型,请参考 TIMConvType</param>
        /// <param name="msg_arry">	消息数组</param>
        /// <param name="handler">导入消息列表到指定会话成功与否的回调</param>
        public static TIMResult IMMsgImportMsgList(string conv_id, TIMConvType iMConvType, List <IMessage> msg_arry, MsgImportMsgListDelgate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMMsgImportMsgList(conv_id, iMConvType, JsonConvert.SerializeObject(msg_arry), MsgImportMsgListResultCallBack, ptr));
        }
Пример #23
0
        /// <summary>
        /// 获取群成员信息列表。
        /// </summary>
        /// <param name="memberInfo">获取群成员信息列表参数</param>
        /// <param name="handler">获取群成员信息列表成功与否的回调。</param>
        public static TIMResult IMGroupGetMemberInfoList(GroupGetMemberInfoListParam memberInfo, GroupGetMemberInfoListResultDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupGetMemberInfoList(JsonConvert.SerializeObject(memberInfo), GroupGetMemberInfoListCallBack, ptr));
        }
Пример #24
0
        /// <summary>
        /// 上报群未决信息已读
        /// 时间戳 time_stamp 以前的群未决请求都将置为已读。上报已读后,仍然可以拉取到这些未决信息,但可通过对已读时戳的判断判定未决信息是否已读。
        /// </summary>
        /// <param name="time_stamp">已读时间戳(单位秒)。与 GroupPendency 键kTIMGroupPendencyAddTime指定的时间比较</param>
        /// <param name="handler">上报群未决信息已读成功与否的回调</param>
        public static TIMResult IMGroupReportPendencyReaded(ulong time_stamp, GroupReportPendencyReadedDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMGroupReportPendencyReaded(time_stamp, GroupReportPendencyReadedCallBack, ptr));
        }