当前位置: 首页 > news >正文

公司建设网站怎么做账苏州知名网站制作开发

公司建设网站怎么做账,苏州知名网站制作开发,免费外贸网站源码,网页设计作业怎么打包在此真的要吐槽吐槽环信,那么大的公司,文档那么乱。。。真的像一坨屎一样,翻个demo东翻西翻,官网论坛看的眼瞎。。。几乎要放弃了,还好百度到别人的看了看弄出来了 1、首先,要确认自己用的是哪个环信的UI库…

在此真的要吐槽吐槽环信,那么大的公司,文档那么乱。。。真的像一坨屎一样,翻个demo东翻西翻,官网论坛看的眼瞎。。。几乎要放弃了,还好百度到别人的看了看弄出来了

1、首先,要确认自己用的是哪个环信的UI库?目前光官方文档,已经翻到三种UI库:GitHub - easemob/chatuikit-android,(本地引入),还有gradle引入环信UI框架,还有个什么玩意,删掉了不说了。再次我是用的是“本地引入(老版本)”(为什么要用本地引入的这个方式,而不用其他两个gradle方式的呢?因为其他两个新版本的呢?因为这个老板耦合性低点,其他两种所谓的新版,工程里吧啦吧啦什么“更优化”、“用户自定义”。。简直就是屎啊,gradle三方库里定义些UI宏定义,UI控件,然后demo里自己本地又写些本地的控件,改着改着就成一坨屎了。。果断放弃,使用本地引入,还算清晰点,有什么UI想改的,自定义的,直接改本地的”ease-chat-kit“里的东西就行),详细可以看这个GitHub - easemob/chatuikit-android 链接,将“ease-chat-kit”文件夹放到你的工程,并做相关配置(其实就两句代码配置下,有配置问题,一般就是gradle版本+链接demo里的三方库和你app里的三方库,版本不一致,我就遇到了,也是这么改的gradle喝三方库版本,就不报错了)

2、implementation ("io.hyphenate:hyphenate-chat:4.3.0"),虽然目前最新的是4.5.0,但是为了保险起见,我用的是4.3.0版本,然后“syncnow”同步下gradle

3、相信你能找到ease-chat-kit文件夹的“EaseConversationListFragment”(这个也是联系人列表页,是个fragment),然后:refreshData()方法,应该是188行-> binding?.listConversation?.loadData()-> listViewModel(类)=xxx...构造方法那句 -> EaseConversationListViewModel-> loadData方法,适当位置(其实就是设置头像那个loadData代码下边,自己找啊,懒得截图了),加上这么一句:

var mutableList: Array<String>? = null

然后再“_view?.loadConversationListSuccess(it)”加上这些

mutableList= Array<String>(it.size) { i -> it.get(i).conversationId }
println("userid:"+it.size)userManager?.fetchUserInfoByUserId(mutableList, object:EMValueCallBack<MutableMap<String, EMUserInfo>> {override fun onSuccess(value: MutableMap<String, EMUserInfo>?) {var userList = mutableListOf<EaseProfile>()value?.values?.toList()?.forEach {var profile = EaseProfile(it.userId,it.nickname,it.avatarUrl)userList.add(profile)}EaseIM.getCache().updateProfiles(userList)}override fun onError(error: Int, errorMsg: String?) {println("fetchUserInfoByUserId2")}})

以上代码是转换,环信接口拿到的用户信息(包含头像、昵称的接口源数据),转换为UI联系人模型;之所以不显示用户头像,也是因为没做这个转换;

4、然后程序启动,或者适当时机环信sdk初始化的时候;加上这么几句:

EaseIM.INSTANCE.init(MainActivity.activityContext,options,null).setConversationInfoProvider(new EaseConversationInfoProvider() {@Nullable@Overridepublic EaseProfile getProfile(@Nullable String id, @NonNull EMConversation.EMConversationType type) {return null;}@Overridepublic void fetchProfiles(@NonNull Map<EMConversation.EMConversationType, ? extends List<String>> idsMap, @NonNull Function1<? super List<EaseProfile>, Unit> onValueSuccess) {}
});

设置一个provider,因为,步骤5,设置图片的时候,会获取provider,调用provider的getUser联系人方法,如果不设置provider,那么步骤5就是provider空的,造成设置头像失败。

5、(这步主要是为了排除,你们服务器没设置用户头像的错误,可以不写)相信你能找到ease-chat-kit文件夹的“EaseConversationListFragment”(这个也是联系人列表页,是个fragment),然后:adapter -> EaseConversationListAdapter -> getViewHolder -> EaseConversationViewHolderFactory(类).createViewHolder(方法) -> EaseConversationViewHolder -> setData方法,适当位置(其实就是设置头像那个EaseIM.getConversationInfoProvider()?.getSyncProfile。。。代码下边,自己找啊,懒得截图了),加上这么一句:

println("fetchUserInfoByUserId2:"+profile.id+profile.name+profile.avatar)

这个是打印下,环信服务器是否传了头像、昵称;这个代码,主要是为了排除你们app,后台服务器,没有上传用户的环信头像、环信昵称的问题

至此结束,联系人列表头像昵称完成;消息列表的头像、昵称同理,不做赘述。

http://www.yayakq.cn/news/728091/

相关文章:

  • 遵义市和城乡建设局网站wordpress文章页打赏
  • 自己买服务器做网站网站开发设计有限公司
  • 网站聚合页面怎么做青海 住房和建设厅网站
  • 西安网站优化排名网站竞价
  • 郑州企业网站制作怎么做wordpress空页面模板
  • 江门市蓬江发布seo网站建设优化
  • 网站建设实训目的线下推广的方式有哪些
  • 网站备案平台的服务简介南昌租房网
  • 建设银行激活网站自己怎么设计网页
  • 阿里云用ip做网站表格制作excel
  • 厦门网站推广广东省工程建设注册中心网站
  • 北京城乡建设学校网站flash+xml网站模板
  • 泰安网网站建设深圳国际红树林中心
  • 国际网站怎么开通抖音seo搜索优化
  • 济南营销型网站建设哪家好肇庆市电商网站建设价格
  • 开发网站用什么语言吴江企业建设网站
  • 网站怎么使用模板申请个人企业邮箱
  • 机械网站建设开发网页设计作业买别人的
  • 餐饮网站开发网站建设前台后台
  • 自己服务器建设网站电商设计英语
  • 怎么申请做网站贵阳网站建设建站系统
  • 物流网站的建设论文一万字检察院门户网站建设报告
  • 网站兼职做计划赚小钱网站建设销售怎样
  • 做网站空间会招攻击seo搜索引擎优化到底是什么
  • 利为汇网站建设辽宁省网站建设
  • 九江建设网站网站更换域名注意事项
  • 婚纱网站目录优化上海医疗网站备案
  • 有个人做网站的吗建立主题网站的顺序一般是
  • 小型电子商务网站规划建设方案中牟郑州网站建设
  • flash里鼠标可以跟随到网站上就不能跟随了wordpress怎么设置404