【开源啦】红包功能的实现 (内含源码下载)
下载APK体验
easeUIcustomer.apk
先上几张APP效果图感受下吧
接下来讲一下详细的实现思路(提供的环信发送红包的和抢红包的流程代码,到了付款和提现那块就是自己选择接入微信付款还是支付宝付款
)
1.继承EaseChatFragment并implement EaseChatFragmentListener
2.在registerExtendMenuItem中增加红包菜单,以及onExtendMenuItemClick中增加红包点击事件
3.sendRedMoney类实现发送红包,需要自己实现支付宝付款接口,在onActivityResult中发送红包的自定义扩展消息,可以以文本消息携带金额和祝福语的扩展,以及支付宝凭证的扩展,然后发送给对方,并向自己服务器发送红包数据(这部分接口由自己服务器提供并实现)
4.实现MyEaseCustomChatRowProvider接口,重点是getCustomChatRow这个方法实现红包自定义 消息对象的创建ChatRowRedMoney
5.关于红包消息界面的布局就看一下ChatRowRedMoney这个类
6.点击红包事件的实现第一种:onMessageBubbleClick这个方法中通过判断是红包消息启动领取红包的activity,同时return true;第二种:ChatRowRedMoney 中的onBubbleClick中实现红包点击处理,并去自己服务器请求对应的红包数据(这个接口由自己服务器提供并实现)
群组内抢红包的分配实现,可以通过客户端发送抢红包请求后,通过您的服务器来处理分配金额,通过回调发送到您的手机上展示您抢到的金额
点击下载源码: https://github.com/shiyiling/ShiEaseUICustomer
9 个评论
常见问题:
1.菜单点击事件没有反应
setUpView()中加上setChatFragmentListener( this)这句
2.自定义消息点击没有反应
自定义消息中xml布局的bubble id是必须要写的,消息监听事件会走这个布局是否为空的判断
Failed to register native method com.easemob.media.AVNative.nativeStartVideo(Lcom/easemob/media/IGxStatusCallback;IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IIIZ)I in /data/app/com.yiling.easemob.easeuicustomer-1/base.apk
02-03 14:49:55.627: E/art(22433): ----- class 'Lcom/easemob/media/AVNative;' cl=0x12e71760 -----
02-03 14:49:55.627: E/art(22433): objectSize=588 (440 from super)
02-03 14:49:55.628: E/art(22433): access=0x0000.0001
02-03 14:49:55.628: E/art(22433): super='java.lang.Class<java.lang.Object>' (cl=0x0)
02-03 14:49:55.628: E/art(22433): vtable (36 entries, 11 in super):
我用studio编程的,用导入eclipse文件的方式去导入你这个源码
Project SendReadMoney:F:\ShiEaseUICustomer-master\project.properties:
Library reference ..\..\easemob-sdk-2.2.4\examples\easeui could not be found
Path is F:\ShiEaseUICustomer-master\..\..\easemob-sdk-2.2.4\examples\easeui which resolves to F:\easemob-sdk-2.2.4\examples\easeui
报了这样的错,不知道什么问题