很多社交軟件都少不了名片這種東西喉恋,可是,用環(huán)信怎么去解決這個名片問題呢。
首先呢轻黑,大家要注意環(huán)信IOS版的擴(kuò)展消息ext不能接收json格式數(shù)據(jù)糊肤。。苔悦。(之前不知道轩褐,ios把我坑了一次)
接下來,我就給大家來集成下名片消息
要想在ios端顯示出來玖详,那么必須兩個客戶端的擴(kuò)展字段必須相同把介,這個大家一定要知道
我的擴(kuò)展字段是這樣的,上面也解釋的很清楚蟋座,大家不要看錯拗踢,是名片上的,不是自己的id向臀,昵稱
接下來我們要去定義幾個常量在chatFragment里面(請把這里的request的值改小一點(diǎn) 巢墅,不改小的話就會報錯數(shù)字越界)
定義好之后,那么接下來我們需要到chatFragment里面去注冊這個按鈕
對券膀,沒錯君纫,就是這么簡單,注冊一個按鈕芹彬,然后蓄髓,我們需要到onExtendMenuItemClick這個方法中寫名片按鈕的點(diǎn)擊事件
大家看到了是個startActivityForResult,看到這里舒帮,肯定接下來就是去到REQUEST_CODE_SELEST_MINGPIAN里面接收data
REQUEST_CODE_SELEST_MINGPIAN是寫在if(resultCode == Activity.RESULT_OK) {}里面的
看到?jīng)]有会喝,之前寫的JSON格式還在這里,對IOS一個勁的恨啊玩郊。肢执。
接下來我們需要去CustomChatRowProvider這個內(nèi)部類里面去設(shè)置發(fā)送接收,大家需要注意getCustomChatRowTypeCount(){}方法里面必須要加上2译红,這個2的意思就是說發(fā)送和接收名片
這里大家應(yīng)該可以看到预茄,我只寫了發(fā)送名片,沒有寫接收名片侦厚,原因就是我不需要自己點(diǎn)自己發(fā)送出去的名片反璃,所以沒寫,這個如果要的話假夺,照葫蘆畫瓢淮蜈,SoEasy
接下來這個非常重要,這個是名片消息的ChatRow已卷,就是載體
對梧田,就是new一個chatRow出來,這個chatRow在easeui里面是沒有的,所以需要我們自己寫
必須注意裁眯,一定要繼承EaseChatRow鹉梨,不然就調(diào)不出onInflatView,onFindViewById穿稳,onUpdateView存皂,onSetUpView,onBubbleClick這幾個方法
這個方法名已經(jīng)很明顯了onFindViewById逢艘,也就是說旦袋,在這里綁定布局里面的id,最重要的方法是onSetUpView
這里設(shè)置完了之后它改,基本上就好了疤孕,布局我沒有放出來,等會看運(yùn)行之后的效果
這幾個方法的意思大家去看EaseUI里面的EaseChatRow
到最后央拖,我們還需要一個步驟祭阀,就是去DemoHelper里面監(jiān)聽消息是不是名片擴(kuò)展消息
是不是很好理解,這個完了之后鲜戒,運(yùn)行专控。。遏餐。伦腐。
完美!>呈洹!
如果大家還有什么問題颖系,那么就加入環(huán)信IM互幫互助群 340452063認(rèn)準(zhǔn)杭州-android-中草嗅剖,龍瞎頭像,找我嘁扼,幫你解答一切擴(kuò)展消息問題