TXIMSDK_TUIKit_iOS 自定義消息踩過的坑

我用的SDK版本pod 'TXIMSDK_TUIKit_iOS', '~> 5.0.10'

第一, pod導(dǎo)入有幾率會導(dǎo)入失敗, 當(dāng)時沒有想著寫簡書, 但是折騰不很久, 最終解決是因為 在pod文件中增加了pod 'ISVImageScrollView', '~> 0.1.2'
這是TXIMSDK_TUIKit_iOS中會自動引用的一個庫, 謹(jǐn)記, 導(dǎo)入順序一定是
pod 'TXIMSDK_TUIKit_iOS', '~> 5.0.10'
pod 'ISVImageScrollView', '~> 0.1.2'

第二, 騰訊畢竟是騰訊, 針對自定義消息給開發(fā)者的門檻非常低, 但是.... 有點麻煩!
首先你針對自己的需求, 需要多少種自定義消息就先對應(yīng)創(chuàng)建的Cell和CellData
每一個Cell和CellData為一組, 負(fù)責(zé)一個自定義消息控件的賦值, 交互與高度的自適應(yīng), 重點是必須繼承TUIMessageCell和TUIMessageCellData

第三, TUIMessageCell中, 自帶一個isSelf的屬性, 文檔中說明是用來區(qū)分當(dāng)前發(fā)送的消息是否是自己發(fā)送的, 但是!!! 這個屬性僅限在當(dāng)前頁面發(fā)送消息時有用, 當(dāng)你返回到上一個頁面時, 這個屬性的值永遠(yuǎn)是false, 所以這個屬性無法解決某些需要判斷當(dāng)前這條消息是否是自己發(fā)送的需求, 我使用的是messageData.direction, 這個屬性可以點進(jìn)去看一下, 兩個類型, 完美解決這個問題

第四, 自適應(yīng)高度, Oc很多年沒寫了, 這里不做贅述, 但是我相信swift的小伙伴在做UI控件約束的時候還是習(xí)慣在自定義cell中初始化一個setupConstraints的方法在這里做約束, 即便是有多行文字的問題, snp僅需要你配置一下最大臨界點即可, 但是騰訊大大這方面我就不太清楚是怎么想的, 也許是Oc與swift之間微妙的不同, 他們采取的方式是在剛才我們自定義消息中初始化的TUIMessageCellData里需要重寫一個contentSize()的方法, 假設(shè)你有兩個Label 的字符串是存在多行可能的, 那么你就要在這里計算這兩個Label對應(yīng)字符串的高度, 在這里做修改, 然后才能為整個自定義消息適配高度, 這個真的坑了我很久, 文檔也沒有說明的很清楚, 所以... 當(dāng)你發(fā)現(xiàn)你自定義的消息在聊天界面無法自適應(yīng)高度的時候, 回去TUIMessageCellData看看contentSize()方法有沒有重寫, 有沒有賦值

以上四點是本次對接騰訊云get到的一些東西, 分享給大家, 下面我把實現(xiàn)自定義消息的代碼截圖出來
1, 初始化CustomMessageData, 并繼承TUIMessageCellData


image.png

2, 初始化MessageInterviewCell, 并繼承TUIMessageCell
這里的代碼沒什么新鮮的, 跟我們平時初始化自定義Cell沒什么區(qū)別, 僅僅只是賦值的時候需要用到騰訊SDK中的fill()方法, 如圖:


image.png

3, 視圖控制器中設(shè)置代理,
messageController.delegate = self, 并實現(xiàn)兩個方法, 我暫時沒有做封裝, 但這樣看起來最直觀


image.png

4, 配置自定義消息的數(shù)據(jù), 最終調(diào)用sendMessage()方法發(fā)送消息即可


image.png

其中有兩個方法是我封裝過的, 一個是THeaderManage.dictionaryJsonData(), 這個就是字典轉(zhuǎn)Data的方法, 百度即可, 另一個是:


image.png

這個在騰訊的文檔中有, 如果需要可以留言給我, 有問必回, 不喜勿噴, 謝謝
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容