-
Notifications
You must be signed in to change notification settings - Fork 298
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
30 changed files
with
81 additions
and
104 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,174 +1,151 @@ | ||
一、已实现功能: | ||
# Bmob即时聊天开发组件 | ||
|
||
1、支持好友管理功能,包括添加好友、删除好友、获取好友列表,也可以与你已有的用户系统完全解耦; | ||
## 界面效果 | ||
|
||
2、支持的消息类型:纯文本、聊天表情、图片、位置、语音; | ||
注册页面 | ||
|
||
3、支持会话的本地化存储; | ||
![](image/reg.png) | ||
|
||
4、自定义消息处理机制; | ||
登录页面 | ||
|
||
5、同一账号多处登陆强制下线; | ||
![](image/login.png) | ||
|
||
6、支持消息回执发送:已发送、已阅读两种状态; | ||
会话页面 | ||
|
||
7、支持黑名单管理功能; | ||
![](image/session.png) | ||
|
||
8、支持消息重发机制,由网络或者其他原因导致的消息发送失败皆可点击重发; | ||
![](image/session1.png) | ||
|
||
9、支持地理位置交友; | ||
聊天页面 | ||
|
||
10、支持跨平台聊天,与ios端完成互通。 | ||
![](image/chat.png) | ||
|
||
![](image/chat1.png) | ||
|
||
二、后期更新计划: | ||
![](image/photo.png) | ||
|
||
1、增加在线、离线状态的显示; | ||
![](image/map.png) | ||
|
||
2、增加群聊模式,方便群管理; | ||
语音聊天页面 | ||
|
||
三:看本应用源码能学到啥: | ||
![](image/voice1.png) | ||
|
||
1、认识和深入了解Bmob: | ||
![](image/voice2.png) | ||
|
||
Bmob专注于帮助开发者解决后端云存储,无须搭建后台即可开发出一款高性能的app; | ||
|
||
2、最新百度地图sdk的用法: | ||
![](image/voice3.png) | ||
|
||
获取用户的当前地理位置信息,当无法获取到地理位置的时候,采用反编码方式根据经纬度查询当前地理位置信息。(因为百度地图官网上的目前最新的sdk和我之前用过的很不一样,新版百度地图sdk进行了重构和优化,很多之前熟知的api都改掉了。不清楚的可以去瞧瞧。) | ||
![](image/voice4.png) | ||
|
||
3、最简洁Viewholder的用法: | ||
通讯录页面 | ||
|
||
论坛内有人分享过的关于Viewholder最简洁用法:http://www.eoeandroid.com/thread-321547-1-1.html | ||
这可是和实例相结合的哦,相信大家更加容易理解和运用。 | ||
![](image/contact.png) | ||
|
||
4、最适合做聊天界面的MessageChatadapter的写法:根据不同的消息类型展示不用类型Item界面,利用getItemViewType和getViewTypeCount两个方法。同时和最简洁的Viewholder写法融合起来。 | ||
![](image/contact1.png) | ||
|
||
5、超简洁Adapter写法,支持在adapter内部添加点击事件,方便为ListView单个item中的控件添加点击事件。 | ||
黑名单页面 | ||
|
||
此方法是本人在藤之内的极速开发框架dhroid中学习到的,不明白的可移步框架总档:http://www.eoeandroid.com/thread-326973-1-1.html | ||
![](image/block.png) | ||
|
||
6、头像裁剪 | ||
![](image/block1.png) | ||
|
||
相信很多应用都会有用户的详细资料页面,关于用户头像部分无疑也是比较头疼的,目前大部分应用的头像部分会有两种方式:一种是利用系统的裁剪功能去获取用户头像,一种就是获取到图片或者照片的地址后自定义头像裁剪界面。而我这里提供了一种利用系统的裁剪功能来获取头像的写法,当然我写的这个并不是最好的。如果大家有比较好的写法可以和我交流下。 | ||
查找好友页面 | ||
|
||
7、实现类似微信通讯录页面的效果,并支持对联系人的查找和过滤。 | ||
![](image/search.png) | ||
|
||
8、自定义Dialog写法,支持各种不同类型的dialog的显示。 | ||
新朋友页面 | ||
|
||
9、利用Fragment创建类似Tabhost样式的布局。 | ||
![](image/newfriend.png) | ||
|
||
......其他惊喜留待大家发现。 | ||
附近的人页面 | ||
|
||
小注: | ||
![](image/near.png) | ||
|
||
1、在这里我多提下我这位兄弟的这个框架: | ||
个人资料页面 | ||
|
||
dhroid框架是我所接触到的开源框架当中写法最独特的,里面有几个部分大家可以多看看,先声明下一点,如果你是初学者,刚接触这个框架会觉得很难懂,建议有了一定基础之后再来看这个框架的源码。: | ||
![](image/detail.png) | ||
|
||
1)Dhnet-网络模块(此模块自带缓存功能,这是其他开源框架中所没有的,对了,bmob的查询也是带缓存功能的哦!),这是作者写的关于框架网络模块的地址:http://www.eoeandroid.com/thread-327440-1-1.html | ||
![](image/detail1.png) | ||
|
||
2)NetJsonAdapter:这里面就有我刚才所提到的在adapter内部添加点击事件。具体请看:http://www.eoeandroid.com/thread-328607-1-1.html | ||
![](image/detail2.png) | ||
|
||
3)eventbus事件总线:还没听说过eventbus,那说明你还得好好学习了,我和这位兄弟聊过,他这个eventbus也是他根据github上的eventbus(https://github.com/greenrobot/EventBus)改写的,两者我也看过,觉得他这个框架中的写法要简洁许多,也适合项目中使用。具体地址:http://www.eoeandroid.com/thread-327350-1-1.html | ||
设置页面 | ||
|
||
4)IOC注入:他的这个ioc模块在实现大部分的视图注入、资源注入的基础上,新增了接口和对象注入。 | ||
![](image/setting.png) | ||
|
||
5)其他的一些工具类:JSONUtil和ViewUtil等也是不错的, | ||
|
||
2、由于目前应用还在不断完善开发中,如果大家在使用过程中有什么问题和建议,可在此给我留言。 | ||
## 实现功能 | ||
|
||
四、更新日志 | ||
1. 支持好友管理功能,包括添加好友、删除好友、获取好友列表,也可以与你已有的用户系统完全解耦; | ||
2. 支持的消息类型:纯文本、聊天表情、图片、位置、语音; | ||
3. 支持会话的本地化存储; | ||
4. 自定义消息处理机制; | ||
5. 同一账号多处登陆强制下线; | ||
6. 支持消息回执发送:已发送、已阅读两种状态; | ||
7. 支持黑名单管理功能; | ||
8. 支持消息重发机制,由网络或者其他原因导致的消息发送失败皆可点击重发; | ||
9. 支持地理位置交友; | ||
10. 支持跨平台聊天,与ios端完成互通。 | ||
|
||
1、V1.0.4_0627版本更新日志: | ||
1)、新增地理位置交友.支持分页及是否显示附近的好友; | ||
|
||
2)、支持列表的分页查询; | ||
## 后期更新计划: | ||
|
||
3)、修改其他bug | ||
|
||
2、 V1.0.5_0704版本更新日志: | ||
1. 增加在线、离线状态的显示; | ||
2. 增加群聊模式,方便群管理; | ||
|
||
1)、新增对单一用户的语音消息的发送; | ||
|
||
2)、修复分页查询附近的人和好友列表时出现重复数据的问题; | ||
## 看本应用源码能学到啥 | ||
|
||
3)、 修复其他bug。 | ||
|
||
3、V1.0.6_0711版本更新日志(这一版本只对sdk进行部分重构,未增加新功能,主要的修改在于应用) | ||
1. 认识和深入了解Bmob: | ||
|
||
1)、解决当应用锁屏后在回到聊天页面时,新接收的消息不能显示的问题; | ||
|
||
2)、解决频繁接收到不属于本人好友的消息而导致页面不断刷新的问题; | ||
|
||
注:此问题是由于有人恶意使用sdk,为此,从这一版本之后,Bmob的ApplicationId不再公开,之前版本的ApplicationId也会回收,所以还在使用之前版本的童靴,请及时更新sdk并到Bmob官网申请新的ApplicationId,不知道申请流程的请猛击; | ||
|
||
3)、解决播放语音过程中出现的播放错误的问题; | ||
|
||
4)、修正发送图片的方式,重构部分代码; | ||
|
||
5)、添加开源协议Apache Licence 2。 | ||
4、V1.0.7_0715版本更新日志: | ||
|
||
解决新用户注册失败的问题。 | ||
5、V1.0.8_0717版本更新日志: | ||
|
||
1)、支持跨平台聊天,与ios端完成互通,跨平台支持的消息类型:纯文字、表情、图片。 | ||
|
||
2)、解决多次登录之后,本地存储的昵称和头像均消失的问题; | ||
|
||
3)、新增对通知的声音和震动的控制。 | ||
|
||
6、V1.0.9_0725版本更新日志: | ||
|
||
1)、修复图片或语音发送较慢的问题; | ||
|
||
2)、修复注册成功之后退出应用之后再次回到登陆页的问题; | ||
Bmob专注于帮助开发者解决后端云存储,无须搭建后台即可开发出一款高性能的app; | ||
|
||
3)、修复部分机型接收到的语音消息无法播放的问题 | ||
2. 最新百度地图sdk的用法: | ||
|
||
4)、解决好友头像更换后会话界面的好友头像无法及时更换的问题。 | ||
获取用户的当前地理位置信息,当无法获取到地理位置的时候,采用反编码方式根据经纬度查询当前地理位置信息。(因为百度地图官网上的目前最新的sdk和我之前用过的很不一样,新版百度地图sdk进行了重构和优化,很多之前熟知的api都改掉了。不清楚的可以去瞧瞧。) | ||
|
||
5)、解决当应用锁屏后在回到聊天页面时,新接收的消息重复显示的问题; | ||
6)、更换消息广播过滤器的Action,请注意AndroidManifest.xmll中MyMessageReceiver的Action。 | ||
3. 最简洁Viewholder的用法: | ||
|
||
7、V1.1.0_0810版本更新日志: | ||
论坛内有人分享过的关于Viewholder最简洁用法:http://www.eoeandroid.com/thread-321547-1-1.html | ||
这可是和实例相结合的哦,相信大家更加容易理解和运用。 | ||
|
||
1)、解决接收到的语音(时间超过10s)播放不成功的问题。 | ||
4. 最适合做聊天界面的MessageChatadapter的写法:根据不同的消息类型展示不用类型Item界面,利用getItemViewType和getViewTypeCount两个方法。同时和最简洁的Viewholder写法融合起来。 | ||
|
||
2)、增加服务的稳定性,防止被杀死。 | ||
5. 超简洁Adapter写法,支持在adapter内部添加点击事件,方便为ListView单个item中的控件添加点击事件。 | ||
|
||
3)、当账号注销登陆后又未登陆其他设备时,该账号仍能接收来自其他账号的消息(再次登陆成功之后即可看见未读消息)。 | ||
此方法是本人在藤之内的极速开发框架dhroid中学习到的,不明白的可移步框架总档:http://www.eoeandroid.com/thread-326973-1-1.html | ||
|
||
8、V1.1.1_0814版本更新日志: | ||
1)、新增查询指定范围内的附近的人列表; | ||
6. 头像裁剪 | ||
|
||
2)、添加用户的性别设置; | ||
相信很多应用都会有用户的详细资料页面,关于用户头像部分无疑也是比较头疼的,目前大部分应用的头像部分会有两种方式:一种是利用系统的裁剪功能去获取用户头像,一种就是获取到图片或者照片的地址后自定义头像裁剪界面。而我这里提供了一种利用系统的裁剪功能来获取头像的写法,当然我写的这个并不是最好的。如果大家有比较好的写法可以和我交流下。 | ||
|
||
3)、附近的人新增额外属性查询:如查询性别为女的用户。 | ||
7. 实现类似微信通讯录页面的效果,并支持对联系人的查找和过滤。 | ||
|
||
8. 自定义Dialog写法,支持各种不同类型的dialog的显示。 | ||
|
||
五、 常见问题解答: | ||
9. 利用Fragment创建类似Tabhost样式的布局。 | ||
|
||
很多童靴反应收不到消息在这里我说明几点: | ||
|
||
1、请使用最新版本的sdk,目前最新版是V1.1.1,因为新版本修复了一些开发者提出的问题。同时,从V1.0.6版本开始,后面的版本将不再公开ApplicationId,请到官网申请,这里附上:申请流程 | ||
## 常见问题解答 | ||
|
||
2、目前由于sdk正在不断完善的过程中,所以高版本与低版本是不兼容的,也就是说,用高版本sdk的应用向低版本sdk的应用发送消息是收不到的,甚至会导致程序奔溃。因此建议均使用最新版本sdk,等sdk稳定后,版本之间会做兼容的。 | ||
很多童靴反应收不到消息在这里我说明几点: | ||
|
||
3、在安装新版本sdk的应用之前,请卸载掉你手机里面的低版本sdk的应用,且卸载前点击清除缓存和清除数据两个按钮,之后再卸载,如果单纯的点击卸载的话,该应用内部会有些缓存保留,等安装新版本后会继续使用之前版本的一些数据,所以也会导致收不到消息。 | ||
|
||
4、另外有人反映发送位置的时候,定位不了,谢谢这位童靴的问题哦,现说明下:你是下载demo之后直接运行的话,需要去重新去百度地图官网申请key,因为demo里面的可以是和我的eclipse绑定在一起的,相信做过百度地图开发的知道这是为什么。 | ||
|
||
5、工程所用的编码格式是GBK,所以大家导入到eclipse的时候需要自行修改下编码方式哦! | ||
1. 请使用最新版本的sdk,目前最新版是V1.1.1,因为新版本修复了一些开发者提出的问题。同时,从V1.0.6版本开始,后面的版本将不再公开ApplicationId,请到官网申请。 | ||
2. 目前由于sdk正在不断完善的过程中,所以高版本与低版本是不兼容的,也就是说,用高版本sdk的应用向低版本sdk的应用发送消息是收不到的,甚至会导致程序奔溃。因此建议均使用最新版本sdk,等sdk稳定后,版本之间会做兼容的。 | ||
3. 在安装新版本sdk的应用之前,请卸载掉你手机里面的低版本sdk的应用,且卸载前点击清除缓存和清除数据两个按钮,之后再卸载,如果单纯的点击卸载的话,该应用内部会有些缓存保留,等安装新版本后会继续使用之前版本的一些数据,所以也会导致收不到消息。 | ||
4. 另外有人反映发送位置的时候,定位不了,谢谢这位童靴的问题哦,现说明下:你是下载demo之后直接运行的话,需要去重新去百度地图官网申请key,因为demo里面的可以是和我的eclipse绑定在一起的,相信做过百度地图开发的知道这是为什么。 | ||
5. 工程所用的编码格式是GBK,所以大家导入到eclipse的时候需要自行修改下编码方式哦! | ||
6. 请大家用两台真机测试,模拟器和平板电脑未经过测试,故无法保证其能无法正常接收到消息。 | ||
7. 是否安装有Bmob的AndroidSdk自带的BmobExample的Demo,因为此IM是基于Bmob推送服务的,而sdk的demo里面也有演示推送服务的例子,但demo里面的BmobPush的sdk版本与我的IM里面的推送版本是不一样的,所以,如果安装的话,会影响到Im的消息接收,请卸载后重试! | ||
|
||
|
||
6、请大家用两台真机测试,模拟器和平板电脑未经过测试,故无法保证其能无法正常接收到消息。 | ||
## Bmob官方信息 | ||
|
||
7、是否安装有Bmob的AndroidSdk自带的BmobExample的Demo,因为此IM是基于Bmob推送服务的,而sdk的demo里面也有演示推送服务的例子,但demo里面的BmobPush的sdk版本与我的IM里面的推送版本是不一样的,所以,如果安装的话,会影响到Im的消息接收,请卸载后重试! | ||
官方网址:[http://www.bmob.cn](http://www.bmob.cn) | ||
|
||
问答社区:[http://wenda.bmob.cn](http://wenda.bmob.cn) | ||
|
||
为了能够结识和团结一批热衷分享,拥有开源精神的朋友。为此我建了一个QQ群:Android交流②群(99072665)。欢迎大家加入,一起交流分享。 | ||
技术邮箱:support@bmob.cn |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.