微信聊天框架的搭建

XZ_WeChat高仿微信聊天框架的搭建,工程地址:https://github.com/corderguo/XZ_WeChat

原文地址:http://coderperson.com/2016/09/28/iOS-weChat/

效果圖展示:



做了兩年IM相關(guān)工作了,去年是集成環(huán)信的SDK實(shí)現(xiàn)的IM功能,今年公司擁有自己的長(zhǎng)連接服務(wù)器,于是從頭自己定協(xié)議然后一步步實(shí)現(xiàn)了IM的整體功能,基本把微信IM有關(guān)的內(nèi)容都實(shí)現(xiàn)了。最近開始整理過去的一些知識(shí),于是先從聊天框架下手,我從項(xiàng)目中抽出這個(gè)簡(jiǎn)易的聊天框架,方便大家學(xué)習(xí)交流。

由于該框架是我用最快的時(shí)間從原項(xiàng)目中抽出來的,摘除了本地緩存的功能(這部分內(nèi)容太多了),所以里面或多或少有一些我原項(xiàng)目中的業(yè)務(wù)邏輯,不過不要緊,這不會(huì)影響你對(duì)聊天框架的學(xué)習(xí),我也會(huì)逐漸把該框架規(guī)范起來。

由于作者的電腦環(huán)境被折騰壞了,不能安裝cocoapods來管理一些用到的三方,所以直接導(dǎo)入進(jìn)了該框架,這一點(diǎn)大家不要學(xué)習(xí)。

該框架目前支持的消息類型:文本消息(包含表情),圖片消息,語音消息,視頻消息,文件消息(pdf,word,excel,ppt,png,html等格式)。

如果你想展示文件消息,你需要把文件拷貝到沙盒的`/Library/Caches/Chat/File`目錄下,由于我以前是從PC端發(fā)送文件到手機(jī)端進(jìn)行的展示,所以目前只能你手動(dòng)拷貝了。

項(xiàng)目中展示的視頻已經(jīng)轉(zhuǎn)成了`mp4`類型,而且也經(jīng)過了壓縮,語音也轉(zhuǎn)換成了`amr`格式,節(jié)省流量的同時(shí),可以和安卓端兼容。

你能從該框架學(xué)習(xí)到什么:

* 聊天框架的搭建

* 表情鍵盤的實(shí)現(xiàn)

* 語音相關(guān)的知識(shí)

* 視頻相關(guān)的知識(shí)

* 文件相關(guān)的功能

* 轉(zhuǎn)場(chǎng)動(dòng)畫相關(guān)的知識(shí)

* 數(shù)據(jù)模型和尺寸模型分離

* 你能清楚的了解到在實(shí)戰(zhàn)項(xiàng)目中IM的實(shí)現(xiàn)

目前該框架這是初步,我還有好多功能沒有加入進(jìn)去,后續(xù)會(huì)慢慢加入,包括:

* 消息的轉(zhuǎn)發(fā)、拷貝、撤回

* 文章的分享

* 訂閱號(hào)的功能

* 紅包的功能

* 本地緩存的功能(其實(shí)很多功能都要基于數(shù)據(jù)庫(kù)的,我把數(shù)據(jù)庫(kù)去除掉后,很多功能就一塊去除了)

* 草稿箱的功能

* 等等等還有好多好多

---

**更新日志**:

10月8日:添加了消息的拷貝、刪除、撤回功能,由于轉(zhuǎn)發(fā)功能需要用到數(shù)據(jù)庫(kù)所以我只添加了轉(zhuǎn)發(fā)的UI,等添加了數(shù)據(jù)庫(kù)后再完善。`注意`這里的只有自己的消息并且是發(fā)送成功的消息才可以撤回,我這里限制的是`5分鐘`內(nèi)的消息可以撤回,超過規(guī)定時(shí)間不允許撤回。

10月12日:添加了系統(tǒng)消息,當(dāng)消息撤回的時(shí)候聊天界面上提示一條`你撤回了一條消息`的提示。當(dāng)多人聊天的時(shí)候,如果一方撤回了一條消息,系統(tǒng)應(yīng)該給你發(fā)送一條指令,根據(jù)這條指令你識(shí)別出是哪一條消息被撤回了,然后刪除這條消息,并且插入一條`誰誰撤回了一條消息`。

10月12日:適配xcode8.0,解決bug。

如果你在學(xué)習(xí)過程中有什么問題可以和我留言,大家共同提高。如果該框架能幫助到你,歡迎star,你的關(guān)注是我最大的動(dòng)力,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,314評(píng)論 0 15
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,062評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,374評(píng)論 4 61
  • 蘇衍衍許久沒有想起以前的事情了,這一日不知怎么地,就被以前初中的同學(xué)找到了,要不是因?yàn)橐郧斑€算相熟,蘇...
    卓卓ANNE閱讀 425評(píng)論 0 0
  • 嗨,大家好!我是鄧海寬,今天的“語文有意思吧”由我主持,本期的主題是“多彩的世界”。我們的生活多姿多彩,我們的詞語...
    微笑著生活一一秀琴閱讀 283評(píng)論 0 0

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