getConversationListを呼び出してセッションリストを取得するとき、このインターフェースから返されたセッションリストでは、先頭固定表示されたセッションが最初で、先頭固定表示されていないセッションがその次に表示されます。V2TIMConversationオブジェクトのisPinnedフィールドを使用して、セッションが先頭固定表示されているかどうかを確認できます。V2TIMConversationオブジェクトのorderKeyフィールドの順によって並べ替えられます。orderKeyフィールドは整数です。新しいメッセージの送信、新しいメッセージの受信、ドラフト設定、またはセッションの先頭固定表示が行われるとき、セッションがアクティブになり、orderKeyフィールドが増加します。// isPinnedパラメータがtrueの場合は、セッションの先頭固定表示を表し、そうでない場合は、先頭固定表示解除を表します。String conversationID = "conversationID";V2TIMManager.getConversationManager().pinConversation(conversationID, true, new V2TIMCallback() {@Overridepublic void onSuccess() {Log.i("imsdk", "success");}@Overridepublic void onError(int code, String desc) {Log.i("imsdk", "failure, code:" + code + ", desc:" + desc);}});
// isPinnedパラメータがYESの場合は、セッションの先頭固定表示を表し、そうでない場合は、先頭固定表示解除を表します。NSString *conversationID = @"conversationID";[[V2TIMManager sharedInstance] pinConversation:conversationID isPinned:YES succ:^{NSLog(@"success");} fail:^(int code, NSString *desc) {NSLog(@"failure, code:%d, desc:%@", code, desc);}];
class Callback final : public V2TIMCallback {public:using SuccessCallback = std::function<void()>;using ErrorCallback = std::function<void(int, const V2TIMString&)>;Callback() = default;~Callback() override = default;void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {success_callback_ = std::move(success_callback);error_callback_ = std::move(error_callback);}void OnSuccess() override {if (success_callback_) {success_callback_();}}void OnError(int error_code, const V2TIMString& error_message) override {if (error_callback_) {error_callback_(error_code, error_message);}}private:SuccessCallback success_callback_;ErrorCallback error_callback_;};V2TIMString conversationID = u8"conversationID";bool isPinned = true;auto callback = new Callback;callback->SetCallback([=]() {// セッションの先頭固定表示に成功しましたdelete callback;},[=](int error_code, const V2TIMString& error_message) {// セッションの先頭固定表示に失敗しましたdelete callback;});V2TIMManager::GetInstance()->GetConversationManager()->PinConversation(conversationID, isPinned, callback);
addConversationListener(Android / iOS & Mac / Windows)を呼び出してセッション監視装置(リスナー)を追加すると、onConversationChangedからV2TIMConversationオブジェクトのisPinnedフィールドを取得できます。このフィールドによって、セッションの先頭固定表示状態が変化したかどうかを判断できます。public void onConversationChanged(List<V2TIMConversation> conversationList) {// セッションメッセージの変更通知を受信しましたLog.i("imsdk", "onConversationChanged");}
- (void)onConversationChanged:(NSArray<V2TIMConversation*> *) conversationList {for (V2TIMConversation *conv in conversationList) {if ([conv.conversationID isEqualToString:self.conversationData.conversationID]) {// conv.isPinnedはセッションの先頭固定表示状態です}}}
class ConversationListener final : public V2TIMConversationListener {public:void OnConversationChanged(const V2TIMConversationVector& conversationList) override {// セッションメッセージの変更通知を受信しました}// その他のメンバー...};// セッションイベントリスナーを追加します。イベントコールバックを受信できないことを避けるために、リスナーを削除する前に、conversationListenerの有効期間を維持する必要があることに注意してください。ConversationListener conversationListener;V2TIMManager::GetInstance()->GetConversationManager()->AddConversationListener(&conversationListener);
フィードバック