TencentImSDKPlugin.v2TIMManager.getMessageManager()にあります。getC2CHistoryMessageList (クリックして詳細を表示)インターフェースを呼び出して、シングルチャットのメッセージ履歴を取得できます。
ネットワークが正常の場合は、最新のクラウドデータをプルします。ネットワークが異常の場合は、SDKはローカルに保存されたメッセージ履歴が返されます。
ローカルのメッセージ履歴をプルしたい場合は、高度なインターフェースをご参照ください。// シングルチャットメッセージ履歴の取得// 初回の取得では、lastMsgIDをnullに設定します// 再度取得する際、lastMsgIDは返されたメッセージリストの最後の1通のidを使用することができますTencentImSDKPlugin.v2TIMManager.getMessageManager().getC2CHistoryMessageList(userID: "userId",count: 10,lastMsgID: null,);
getGroupHistoryMessageList (クリックして詳細を表示)インターフェースを呼び出して、グループチャットのメッセージ履歴を取得できます。
ネットワークが正常の場合は、最新のクラウドデータをプルします。ネットワークが異常の場合は、SDKはローカルに保存されたメッセージ履歴が返されます。
ローカルのメッセージ履歴をプルしたい場合は、高度なインターフェースをご参照ください。// シングルチャットメッセージ履歴を取得します// 初回の取得では、lastMsgIDをnullに設定します// 再プルする場合は、lastMsgIDは、返されたメッセージリストの最後のメッセージidを使用できますTencentImSDKPlugin.v2TIMManager.getMessageManager().getGroupHistoryMessageList(groupID: "groupID",count: 10,lastMsgID: null,);
getHistoryMessageList (クリックして詳細を表示)をさらに提供しています。// シングルチャットメッセージ履歴の取得// 初回の取得では、lastMsgIDをnullに設定します// 再度取得する際、lastMsgIDは返されたメッセージリストの最後の1通のidを使用することができますV2TimValueCallback<List<V2TimMessage>> getHistoryMessageListRes =await TencentImSDKPlugin.v2TIMManager.getMessageManager().getHistoryMessageList(getType: HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG, // メッセージをプルする方向および位置userID: "userID", // ユーザーIDがシングルチャットメッセージをプルするには、相手のuserIDを指定する必要があります。このとき、空のgroupIDを渡すだけで済みます。groupID: "groupID", // グループidがグループチャットメッセージをプルするには、グループチャットのgroupIDを指定する必要があります。このとき、空のgroupIDを渡すだけで済みます。count: 10, // プルされたデータの数lastMsgID: null, // 開始メッセージidをプルします// このフィールドは、グループチャットでのみ使用できます。// プルの開始点としてlastMsgSeqを設定すると、返されたメッセージリストにこのメッセージが含まれます。// lastMsgおよびlastMsgSeqが同時に指定された場合、SDKはlastMsgを優先します。// lastMsgおよびlastMsgSeqがいずれも指定されていない場合、プルの開始点はgetTimeBeginが設定されているかどうかによって異なります。設定する場合は設定範囲を開始点とし、設定しない場合は最新のメッセージを開始点とします。lastMsgSeq: -1,messageTypeList: [], // 履歴情報の属性をフィルタリングするために使用されます。空の場合、すべての属性情報をプルします。);if (getHistoryMessageListRes.code == 0) {//取得に成功}
パラメータ | 意味 | シングルチャットが有効 | グループチャットが有効 | 必須かどうか | 説明 |
getType | メッセージをプルする位置および方向です。ローカル/クラウドのより古い/更新のメッセージのプルを設定することができます | YES | YES | YES | クラウドからのプルを設定するとき、ローカルに保存されたメッセージリストとクラウドに保存されたメッセージリストとをマージしてから返されます。ネットワークがない場合は、ローカルメッセージリストが直接返されます。 |
userID | 指定されたユーザーのシングルチャットメッセージ履歴をプルします | YES | NO | NO | シングルチャットメッセージをプルするには、相手のuserIDを指定する必要があります。このとき、空のgroupIDを渡すだけで済みます。 |
groupID | 指定されたグループのグループチャットメッセージ履歴をプルします | NO | YES | NO | シングルチャットメッセージをプルするには、グループチャットのgroupIDを指定する必要があります。このとき、空のuserIDを渡すだけで済みます。 |
count | 1回プルされたメッセージの数 | YES | YES | YES | iOS/Android端末では20に設定することをお勧めします。そうでない場合、プル速度に影響する可能性があります。Web端末の上限は15件です。 |
lastMsgID | どのメッセージからメッセージ履歴の取得を開始するかを示す最後のメッセージです | YES | YES | NO | 1. シングルチャットとグループチャットの両方で使用できます。 2. プルの開始点としてlastMsgを設定すると、返されたメッセージリストにこのメッセージが含まれていません。 3. 空に設定すると、セッションの最新のメッセージがプルの開始点として使用されます。 |
lastMsgSeq | どのメッセージからメッセージ履歴の取得を開始するかを示す最後のメッセージseqです | NO | YES | NO | 1. このフィールドはグループチャットでのみ使用できます。 2. プルの開始点としてlastMsgSeqを設定すると、返されたメッセージリストにこのメッセージが含まれます。 3. lastMsgおよびlastMsgSeqが同時に指定された場合、SDKはlastMsgを優先します。 4. lastMsgおよびlastMsgSeqがいずれも指定されていない場合、プルの開始点はgetTimeBeginが設定されているかどうかによって異なります。設定する場合は設定範囲を開始点とし、設定しない場合は最新のメッセージを開始点とします。 |
lastMsgおよびcountを使用して実現します。lastMsgおよびcountを使用してページネーションを実現します。最初にプルするときにlastMsgを空に設定し、メッセージリストから返された最後のメッセージを次のプルでlastMsgとして使用して、次のページのデータをプルすることができます。lastMsgを空に設定すると、SDKはデフォルトで最新のメッセージから返されます。lastMsgを設定すると、返されたメッセージリストには、設定されたlastMsgが含まれていません。countを20に設定することをお勧めします。lastMsgSeqに対応するメッセージが含まれるため、グループチャットメッセージ履歴をプルするときにlastMsgSeqを使用してプルを続行することはお勧めしません。getTypeを設定して、ローカルメッセージのみをプルします。getTypeの値がV2TIM_GET_LOCAL_OLDER_MSGの場合、古い時間の方向にローカルに保存されたメッセージをプルすることを意味します。getTypeの値がV2TIM_GET_LOCAL_NEWER_MSGの場合、新しい時間の方向にローカルに保存されたメッセージをプルすることを意味します。TencentImSDKPlugin.v2TIMManager.getMessageManager().getHistoryMessageList(count: 10,getType: HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG,userID: "userID",);
sequenceを設定し、高度なインターフェースを使用してプルすることができます。// グループ@メッセージに対応するsequenceをプルしますint atSequence = 1081;// グループ@メッセージおよびそれ以前のメッセージをプルしますTencentImSDKPlugin.v2TIMManager.getMessageManager().getHistoryMessageList(count: 20, // 20件プルしますgetType: HistoryMsgGetTypeEnum.V2TIM_GET_CLOUD_OLDER_MSG, // グループ@メッセージよりも以前のメッセージをプルしますlastMsgSeq: atSequence,// グループ@メッセージを含むグループ@メッセージからプルを開始しますgroupID: "groupID" // グループチャットメッセージをプルします);// グループ@メッセージの後のメッセージをプルしますTencentImSDKPlugin.v2TIMManager.getMessageManager().getHistoryMessageList(count: 20, // 20件プルしますgetType: HistoryMsgGetTypeEnum.V2TIM_GET_CLOUD_NEWER_MSG, // グループ@メッセージよりも以降のメッセージをプルしますlastMsgSeq: atSequence,// グループ@メッセージを含むグループ@メッセージからプルを開始しますgroupID: "groupID" // グループチャットメッセージをプルします);
onlineUserOnly フィールドがYES/trueに設定されます。countを減らしてみてください。 フィードバック