之前的項目要來了新需求皆刺,需要集成騰訊云IM(別問我為什么選擇騰訊云少辣,坑多文檔爛這我都知道),關(guān)鍵人家根據(jù)DAU羡蛾,可以提供免費(fèi)服務(wù)毒坛。上面的意思還有人家是做IM起家的,所以就選擇了騰訊云。那么我們就擼起袖子來干吧煎殷!
首先屯伞,下載騰訊云的demo,導(dǎo)入后可以看到除了主包外還有4個module先分別介紹下豪直, presentation是業(yè)務(wù)邏輯處理層劣摇,tlslibrary是騰訊的TLS集成層(集成騰訊云IM可選擇分為獨(dú)立模式/托管模式,TLS是托管模式所依附的模塊)弓乙,SDK為IM的SDK層末融,UI更簡單了,顧名思義暇韧,就是UI的繪制與渲染全部都在這一層(只提供了一個模板)勾习,正因為demo中是使用MVP+模塊化,已經(jīng)把業(yè)務(wù)分解出來了懈玻,所以我們在套用demo中的代碼就簡單了巧婶。
下面來說一下怎么集成,在我們自己的項目中選擇Import Module:
選擇demo中的ui層即可涂乌,因為其他的模塊都是互相依賴引用艺栈,所以只導(dǎo)入UI,系統(tǒng)會自動幫我們把其他的模塊也導(dǎo)入湾盒。
如果你的項目是SDK21或以下罚勾,騰訊云的demo中已經(jīng)對6.0的運(yùn)行時權(quán)限做了處理毅人。這里你需要手動處理一下,給6.0的permission代碼干掉尖殃。比如這樣:
如果你的項目中還引入的別的SDK堰塌,也調(diào)用了JNI .so文件,那么請?zhí)砑酉聢D所示的代碼來解決.so文件沖突
接下來分衫,請在你的app.gradle文件下添加
multiDexEnabled true
compile 'com.android.support:multidex:1.0.1'
javaMaxHeapSize "4g"
application中重寫attachBaseContext(Context base)并添加
MultiDex.install(base);
這里不多說场刑,解決65535。
如果你做到了這一步蚪战,正好牵现,application中你還需要初始化騰訊云IMSDK,來繼續(xù)操作吧~
好邀桑,我們在繼續(xù)進(jìn)入InitBusiness這個類中看一下是如何封裝的瞎疼。
這里把項目申請的APPID和ACCOUNT_TYPE,替換成我們自己的壁畸。
注意標(biāo)紅的地方贼急,如果你在看騰訊云demo的時候茅茂,一定是沒有這一句的,我們是使用的獨(dú)立模式太抓,所以這里要手動添加上這行代碼空闲,并使用騰訊分發(fā)給我們account_type。否則會出現(xiàn)初始化失敗的提示走敌,錯誤碼是70XX碴倾,或者100XX?靠掉丽,我忘記了跌榔。好吧,這不重要捶障。
在接下來僧须,就需要配置我們的androidmanifest.xml,參考demo项炼,copy過來就可以担平,沒有配置的參數(shù),不需要修改芥挣。
現(xiàn)在想實(shí)現(xiàn)可視化頁面驱闷,就需要把demo中的activity耻台,model空免,util,res盆耽,drawble等復(fù)制過來了蹋砚,有什么錯誤,缺什么資源就去對應(yīng)找什么資源摄杂。
如果你是第一次用的話坝咐,根據(jù)不同的需求,估計會用上你2-3個小時的時間析恢。
當(dāng)你的項目不再報錯墨坚,不在有紅線的時候,
你可以先進(jìn)入聊天頁面看一下映挂,ChatActivity泽篮,這里已經(jīng)封裝好了靜態(tài)方法。
我們這里只需要實(shí)現(xiàn)群聊功能柑船,說一下帽撑,好友關(guān)系鏈,群關(guān)系鏈鞍时,群管理鏈這些都是由騰訊控制亏拉,不需要你來操心了扣蜻,而且這些關(guān)系鏈的初始化操作最好放在登錄之前。
現(xiàn)在再試試及塘,看看我們的基本功能莽使,
文本,沒問題磷蛹,語言吮旅,沒問題。等等味咳,上滑取消語言發(fā)送的功能沒有庇勃,我們?nèi)emo里看一下,果然demo里也沒有槽驶,這里需要自己實(shí)現(xiàn)责嚷,或者砍到這個功能,隨你掂铐。繼續(xù)看罕拂,發(fā)送圖片沒問題,表情也沒問題全陨,發(fā)送文件爆班。好吧,又來了辱姨,這是什么鬼柿菩,只顯示了文件的名字。體驗太差了吧雨涛,好吧枢舶,那么我們自己來修改一下,
找到model下的FileMessage類替久, 顧名思義凉泄,文件消息類,看來是這里控制的蚯根。
好的后众,看到這一行代碼了,
tv.setText(e.getFileName();
原來如此颅拦,我們看看通過還可以get到什么蒂誉,是不是有個e.getFileSize()的方法。這樣我們還可以得到這個文件的大小矩距。
那么我們來修改吧拗盒,通過動態(tài)添加控制來實(shí)現(xiàn)我們想要的效果。
最后看看完成的效果圖:
好像丑了一點(diǎn)锥债,不過還可以陡蝇,只要再找UI切點(diǎn)酷炫的切圖痊臭,在重新設(shè)計下字體的尺寸顏色,就可以了登夫。
至于用戶頭像的顯示广匙,這個是本地的資源目錄,如果你想你服務(wù)器上存儲的用戶頭像也可以恼策,騰訊云應(yīng)該提供了獲取頭像的辦法鸦致,還是蠻周到的。
至于聊天文本的氣泡效果更換涣楷,這是.9圖分唾,如果你自己不會做.9圖,那就讓UI切給你就好了狮斗。
以上呢绽乔,就是接入騰訊云IM的實(shí)踐工作,做的比較簡單比較lower碳褒。請各位大佬不要嫌棄折砸,對于初次嘗試接入IM的小伙伴有所幫忙就好了。
先寫到這里沙峻,想起來的話再補(bǔ)充睦授,就醬,拜~