Beispiel #1
0
        /// <summary>
        /// 根据指定条件查询本地消息
        /// </summary>
        /// <param name="range">消息历史的检索范围</param>
        /// <param name="ids">会话id(对方的account id或者群组tid)的集合</param>
        /// <param name="limit">本次查询的消息条数上限(默认100条)</param>
        /// <param name="sTimetag">起始时间点,单位:毫秒</param>
        /// <param name="eTimetag">结束时间点,单位:毫秒</param>
        /// <param name="endMsgId">结束查询的最后一条消息的client_msg_id(不包含在查询结果中)(暂不启用)</param>
        /// <param name="reverse">true:反向查询(按时间正序起查,正序排列),false:按时间逆序起查,逆序排列(建议默认为false)</param>
        /// <param name="msgType">检索的消息类型(目前只支持kNIMMessageTypeText、kNIMMessageTypeImage和kNIMMessageTypeFile这三种类型消息)</param>
        /// <param name="searchContent">检索文本(目前只支持kNIMMessageTypeText和kNIMMessageTypeFile这两种类型消息的文本关键字检索,
        /// 即支持文字消息和文件名的检索。
        /// 如果合并检索,需使用未知类型消息kNIMMessageTypeUnknown)</param>
        /// <param name="action"></param>
        public static void QueryMsglogByCustomCondition(NIMMsgLogQueryRange range, string[] ids, int limit,
                                                        long sTimetag, long eTimetag, string endMsgId, bool reverse,
                                                        NIMMessageType msgType, string searchContent, QueryMsglogResultDelegate action)
        {
            var    ptr    = NimUtility.DelegateConverter.ConvertToIntPtr(action);
            string idJson = NimUtility.Json.JsonParser.Serialize(ids);

            MsglogNativeMethods.nim_msglog_query_msg_by_options_async(range, idJson, limit, sTimetag, eTimetag, endMsgId,
                                                                      reverse, msgType, searchContent, null, QueryLogCompleted, ptr);
        }
Beispiel #2
0
 internal static extern void nim_msglog_query_msg_by_options_async(NIMMsgLogQueryRange query_range, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string ids, int limit_count, long from_time, long end_time, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string end_client_msg_id, bool reverse, NIMMessageType msg_type, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string search_content, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension, QueryMessageLogDelegate cb, IntPtr user_data);