默认
发表评论 11
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
抱歉,忘记回复了,先睡了,明天上午10点半后再详细回复你。
评论 11
引用:huangheli 发表于 2020-08-13 08:52
好的,大佬,注意休息!

核实一下,你公司叫什么?(不用说全名),我核实一下授权和你用的版本号。
你领导已经跟我说了,我知道你现在的版本号了,我来详细跟你说。你记得按我下面截图的说明的流程,先把一个文本消息的显示和发送逻辑,稍微读一下,掌握一下,就能理解的更清楚了。

im这种东西,多底层到应用层,涉及环节有点多,所以新增一条消息其实是看起来比较繁琐,熟悉后,套路其实都一样,所以不用担心,不明白你的你就在帖子里回复。

以下回复是关于“如何新增一个自定义聊天消息”。

第一步:新增一个聊天消息类型:

[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片0.png

第二步:实现新增的消息类型在聊天UI的显示:

1)新建聊天列表中要用到的.xml布局文件:
注意:“*_left.xml”表示用于显示的是收到的消息,“*_right.xml”表示用于显示的是发出的消息。
[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片1.png

2)使用上述新建的xml布局文件:
[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片2.png

3)在聊天界面的Adater代码中对UI进行赋值,以便显示消息内容:
补充:详见AbstractChattingListAdapter.java中的getView()方法代码。
[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片3.png

第三步:新类型聊天消息的数据发送实现:

1)新增一个该类型的消息发送代码:
[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片4.png

2)聊天界面中,调用该发送代码:
[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片5.png

[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片6.png
[已回复] 求助rainbowchat中如何自定义一个聊天消息(红包功能)_图片7.png
然后,你要做的具体的红包功能,你在理解了上一条我回复的自定义消息的大致逻辑实现后,你看看我下面要给你的红包思路。

我一般是这样给思路的:
..............
实现上不难。唯一要注意的是,因为涉及钱的处理,所以安全性要按照自已的场景,相应的把安全级别做的仔细一点。就是这样了。


【关于接入“红包”功能的实现思路】:
加红包功能,你可以按下面的思路进行功能拆解和实现。

【第一步】:先实现红包消息的纯消息指统和UI界面交互的功能实现:

  • 1)先不管红包的支付问题,仿照现有的图片、短语音等消息类型,弄出一个红包类型的消息(只要是指令的收、发、红包消息的UI显示);
  • 2)第1)步完成后,虽然没有“真的”支付,但“看起来”的红包消息样子已经有了;

【第二步】:在第一步的基本上,在UI交付的环节里加上支付功能逻辑

  • 1)红包确认发送时,接入你的支付接口(具体以你的支付方提供的SDK为准了,这个跟普通的APP里没有区别);
  • 2)收到红包消息后,点击收红包的功能里,实现红包数据的记入逻辑(这个按你设计的红包数据处理逻辑去实现就是)。

【原则】:

  • 以http短连接为主,socket长连接为辅,为辅即表示socket通知只作为通知,而不是主逻辑。

分成以上2步,可以简化完整红包功能的逻辑。仅供参考。

引用:huangheli 发表于 2020-08-13 13:16
老佬,我如果自定义一个消息,要用到MsgType这个接口,但是这个接口在SDK的Jar包中,我没法添加新的消 ...

这个jar里,都是android端和服务端共用的javabean而已,你去服务端的包里看一下,改动后,再打个jar放到android端就行了。同样的类,总不至于android和服务端都维护一份,那就太low了。

打jar包总归是基础了,你没打过就百度一下。 用Eclipse的话,下载个fatjar插件就更简单了。

你可以把.jar扩展名改成.zip,解压一下就知道打进的具体都是什么类了。
引用:huangheli 发表于 2020-08-13 19:45
大佬,我这边还有一个问题有点困惑,我们定义了一个红包的消息类型,值为9,红包被群成员抢过之后应该是 ...

不需要加消息类型了。抢过跟没抢过,你在数据里加一个字段表示就好了,只是在界面上显示,当抢过时,像微信一样,把浮红包浮沉息的背景色变淡而已。

对于ui来说,抢过没抢过的,只是颜色的区别,你数据里也只是个字段的区别。具体你自已构思一样,这对程序员来说是基本的需求转化能力。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部