很多社交软件都少不了名片这种东西,可是,用环信怎么去解决这个名片问题呢。
首先呢,大家要注意环信IOS版的扩展消息ext不能接收json格式数据。。。(之前不知道,ios把我坑了一次)
接下来,我就给大家来集成下名片消息
要想在ios端显示出来,那么必须两个客户端的扩展字段必须相同,这个大家一定要知道
图1我的扩展字段是这样的,上面也解释的很清楚,大家不要看错,是名片上的,不是自己的id,昵称
接下来我们要去定义几个常量在chatFragment里面(请把这里的request的值改小一点 ,不改小的话就会报错数字越界)
图2定义好之后,那么接下来我们需要到chatFragment里面去注册这个按钮
图3对,没错,就是这么简单,注册一个按钮,然后,我们需要到onExtendMenuItemClick这个方法中写名片按钮的点击事件
图4大家看到了是个startActivityForResult,看到这里,肯定接下来就是去到REQUEST_CODE_SELEST_MINGPIAN里面接收data
图5REQUEST_CODE_SELEST_MINGPIAN是写在if(resultCode == Activity.RESULT_OK) {}里面的
看到没有,之前写的JSON格式还在这里,对IOS一个劲的恨啊。。
接下来我们需要去CustomChatRowProvider这个内部类里面去设置发送接收,大家需要注意getCustomChatRowTypeCount(){}方法里面必须要加上2,这个2的意思就是说发送和接收名片
图6这里大家应该可以看到,我只写了发送名片,没有写接收名片,原因就是我不需要自己点自己发送出去的名片,所以没写,这个如果要的话,照葫芦画瓢,SoEasy
接下来这个非常重要,这个是名片消息的ChatRow,就是载体
图7对,就是new一个chatRow出来,这个chatRow在easeui里面是没有的,所以需要我们自己写
图8必须注意,一定要继承EaseChatRow,不然就调不出onInflatView,onFindViewById,onUpdateView,onSetUpView,onBubbleClick这几个方法
图9这个方法名已经很明显了onFindViewById,也就是说,在这里绑定布局里面的id,最重要的方法是onSetUpView
图10这里设置完了之后,基本上就好了,布局我没有放出来,等会看运行之后的效果
这几个方法的意思大家去看EaseUI里面的EaseChatRow
到最后,我们还需要一个步骤,就是去DemoHelper里面监听消息是不是名片扩展消息
图11是不是很好理解,这个完了之后,运行。。。。
图12完美!!!
如果大家还有什么问题,那么就加入环信IM互帮互助群 340452063认准杭州-android-中草,龙瞎头像,找我,帮你解答一切扩展消息问题
网友评论