ConvGetUnreadMessageCountByFilter
introduction
Get Unread Message Count By Filter
The total number of unreads is subtracted from the number of unreads for sessions that are set to Disturb Free, i.e., sessions where the Message Receive option is set to kTIMRecvMsgOpt_Not_Receive or kTIMRecvMsgOpt_Not_Notify.
Parameter details
overload1
overload2
Parameter name |
Parameter type |
Required |
Description |
filter |
ConversationListFilter |
Required |
Conversation Filter |
callback |
ValueCallback< string > |
Required |
Asynchronous callback. The format of json_param in the return value is string |
Returned template
TIMResult
The parameters of the callback function after successfully calling the API:
code:int
desc:string
json_param:'ValueCallback<GetTotalUnreadNumberResult>
user_data:string
Return value details
name |
type |
description |
TIMResult |
TIMResult |
Return value of calling API |
code |
int |
Result error code: Error Codes |
desc |
string |
The description of the error. |
json_param |
string |
Json string. Calling different API will get different Json strings. |
user_data |
string |
User-defined data transfered by ImSDK without any processing |
Code example
using UnityEngine;
using UnityEngine.UI;
using com.tencent.im.unity.demo.types;
using com.tencent.imsdk.unity;
using com.tencent.imsdk.unity.types;
using com.tencent.imsdk.unity.enums;
using System;
using com.tencent.im.unity.demo.utils;
using EasyUI.Toast;
using System.Collections;
using System.Collections.Generic;
public class ConvGetUnreadMessageCountByFilter : MonoBehaviour
{
public Text Header;
public Dropdown SelectedConvType;
public Text Result;
public Dropdown SelectedMarkType;
public InputField GroupName;
public Button Submit;
public Button Copy;
public int[] EnumConvMarkType = (int[])Enum.GetValues(typeof(TIMConversationMarkType));
void Start()
{
Header = GameObject.Find("HeaderText").GetComponent<Text>();
SelectedConvType = GameObject.Find("Dropdown").GetComponent<Dropdown>();
foreach (string name in Enum.GetNames(typeof(TIMConvType)))
{
Dropdown.OptionData option = new Dropdown.OptionData();
option.text = name;
SelectedConvType.options.Add(option);
}
SelectedMarkType = GameObject.Find("MarkType").GetComponent<Dropdown>();
foreach (string name in Enum.GetNames(typeof(TIMConversationMarkType)))
{
Dropdown.OptionData option = new Dropdown.OptionData();
option.text = name;
SelectedMarkType.options.Add(option);
}
GroupName = GameObject.Find("GroupName").GetComponent<InputField>();
Result = GameObject.Find("ResultText").GetComponent<Text>();
Submit = GameObject.Find("Submit").GetComponent<Button>();
Copy = GameObject.Find("Copy").GetComponent<Button>();
Copy.GetComponentInChildren<Text>().text = Utils.t("Copy");
Submit.onClick.AddListener(ConvGetConversationListByFilterSDK);
Copy.onClick.AddListener(CopyText);
SelectedConvType.interactable = true;
if (CurrentSceneInfo.info != null)
{
Header.text = Utils.IsCn() ? CurrentSceneInfo.info.apiText + " " + CurrentSceneInfo.info.apiName : CurrentSceneInfo.info.apiName;
Submit.GetComponentInChildren<Text>().text = CurrentSceneInfo.info.apiName;
}
}
void ConvGetConversationListByFilterSDK()
{
ConversationListFilter filter = new ConversationListFilter
{
conversation_list_filter_conv_type = (TIMConvType)SelectedConvType.value,
conversation_list_filter_mark_type = (TIMConversationMarkType)EnumConvMarkType[SelectedMarkType.value],
conversation_list_filter_conversation_group = GroupName.text
};
TIMResult res = TencentIMSDK.ConvGetUnreadMessageCountByFilter(filter, Utils.addAsyncStringDataToScreen(GetResult));
Result.text = Utils.SynchronizeResult(res);
}
void GetResult(params object[] parameters)
{
Result.text += (string)parameters[0];
}
void CopyText()
{
Utils.Copy(Result.text);
}
void OnApplicationQuit()
{
TencentIMSDK.Uninit();
}
}