EaseUI

EaseUI

1
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 64 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能
 
Android篇
环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图
 昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
持续更新ing...
  查看全部
2
评论

【视频教程+源码】基于环信IM做一个仿微信APP-更新ing 郭永峰 高仿微信 仿微信 环信 XMPP

郭永峰 发表了文章 • 679 次浏览 • 2017-05-16 15:29 • 来自相关话题

我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。
    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
4月12号成立工作室,现在18号,过了一个星期一个星期录了5天的环信教程视频,我将放在网盘免费分享环信的教程视频主要是针对有开发经验者教程主要是使用环信来模仿微信来做一个即时通讯的案例课程主要是先讲socket基础 -> 环信 ->自定义协议希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解同时能希望大家在面试时,在即时通讯这块不在陌生
  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏






支付宝打赏






谢谢大家的支持,个人微信号清扫描下面张图






 
郭永峰IT交流QQ群请加:596441895 查看全部
我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。

    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
  1. 4月12号成立工作室,现在18号,过了一个星期
  2. 一个星期录了5天的环信教程视频,我将放在网盘免费分享
  3. 环信的教程视频主要是针对有开发经验者
  4. 教程主要是使用环信来模仿微信来做一个即时通讯的案例
  5. 课程主要是先讲socket基础 -> 环信 ->自定义协议
  6. 希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解
  7. 同时能希望大家在面试时,在即时通讯这块不在陌生

  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏

微信.png


支付宝打赏

支付宝.png


谢谢大家的支持,个人微信号清扫描下面张图

个人.png


 
郭永峰IT交流QQ群请加:596441895
1
评论

【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了 环信公开课 昵称头像 环信大表哥

beyond 发表了文章 • 597 次浏览 • 2017-05-08 11:55 • 来自相关话题

 ​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫
  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
如何利用消息扩展属性显示昵称头像?如何通过APP服务器处理昵称头像的显示?昵称头像的本地缓存策略?音视频通话如何显示昵称头像?

关于环信大表哥:
   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;

先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。





环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见”
ios简版demo地址
Android简版demo地址 查看全部
 
​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫

  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
  1. 如何利用消息扩展属性显示昵称头像?
  2. 如何通过APP服务器处理昵称头像的显示?
  3. 昵称头像的本地缓存策略?
  4. 音视频通话如何显示昵称头像?


关于环信大表哥:

   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;



先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。
QQ截图20170508115114.jpg


环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见
ios简版demo地址
Android简版demo地址
1
回复

EaseUI3.0在7.0中,文字消息经常显示不全 EaseUI Easeui 3.x

lzan13 回复了问题 • 2 人关注 • 106 次浏览 • 2017-05-08 19:42 • 来自相关话题

4
回复

环信cocoapods集成EaseUI 继承时报错 iOS swift EaseUI cocoapod

yúañ來諟ィ厼ˇ¶﹏,g 回复了问题 • 2 人关注 • 105 次浏览 • 2017-05-04 09:39 • 来自相关话题

1
回复

集成EaseUI时报错 EaseUI

zhoumin 回复了问题 • 2 人关注 • 146 次浏览 • 2017-04-16 11:59 • 来自相关话题

1
回复

字符串未定义错误 EaseUI

zhoumin 回复了问题 • 2 人关注 • 82 次浏览 • 2017-04-16 09:32 • 来自相关话题

1
回复

Eclipse 集成 EaseUI 库报错,NoClassDefFoundError 环信_Android EaseUI eclipse

Wxin 回复了问题 • 2 人关注 • 148 次浏览 • 2017-04-15 21:53 • 来自相关话题

1
回复

环信IOS个人信息、头像不能用了吗?还是更新什么了? 会话列表 好友 EaseUI 环信_iOS

donghai 回复了问题 • 2 人关注 • 162 次浏览 • 2017-04-08 07:00 • 来自相关话题

1
回复

新手求问Androidstudio导入环信easeUI EaseUI

回复

衣冠禽兽 回复了问题 • 1 人关注 • 219 次浏览 • 2017-03-09 03:38 • 来自相关话题

4
评论

Android 依赖EaseUI联系人列表显示昵称 修改之前的发起的那篇文章 Android EaseUI 昵称 昵称头像

LoneWolf 发表了文章 • 230 次浏览 • 2017-02-17 00:54 • 来自相关话题

在设置时要说明 好友数据由app的服务器提供的  所以服务端也要集成
注意 我的页面以及类都是从Demo中复制过来的
我们必须要知道好友数据是在什么位置进行数据适配的
在UserDao中有一个方法是saveContactList这个就是进行好友数据保存的操作了

之前我自己创建了一个数据库  进行操作发现出现很多问题  修改的地方也比较多 走了很多弯路
这次经过观察  Demo已经为我们创建了数据库和表 我们只需要在正确的位置把我们获取的数据保存起来就可以了
那么我们的任务就是定位这个方法是在哪调用的,经过代码的跟踪,最终定位到这个位置在
DemoHelper中asyncFetchContactsFromServer()方法
这个方法在没有修改的情况下是从环信服务器获取的好友数据
为了方便我把代码贴出来public void asyncFetchContactsFromServer(final EMValueCallBack<List<String>> callback) {
if (isSyncingContactsWithServer) {
return;
}
isSyncingContactsWithServer = true;
new Thread() {
@Override public void run() {
List<String> usernames = null;
try {
usernames = EMClient.getInstance().contactManager().getAllContactsFromServer(); // in case that logout already before server returns, we should return immediately
if (!isLoggedIn()) {
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false); return;
}

//这里就是开始从自己app的服务器获取好友数据了Map<String, EaseUser> userlist = new HashMap<String, EaseUser>();
String url = AppConfig.BASE_URL+AppConfig.GETFRIENDS;
HashMap<String, String> map = new HashMap<>(); map.put("userName",PreforenceUtils.getStringData("userInfo","hxid"));
Log.e(TAG,url);
MyHttpUtils myHttpUtils = new MyHttpUtils();
String s = myHttpUtils.httpPost(url, "", "&user", map.toString());
Log.e(TAG,s);
JSONArray jarr = new JSONArray(s);
if(jarr.length()!=0||jarr != null){
for (int i = 0; i < jarr.length(); i++) {
JSONObject jobj = (JSONObject) jarr.get(i);
EaseUser easeUser = new EaseUser(jobj.getString("FRIENDID")); easeUser.setNick(jobj.getString("FRIENDNICKNAME"));
easeUser.setAvatar("");
Log.e(TAG,easeUser.toString());
EaseCommonUtils.setUserInitialLetter(easeUser);
//这是关键的地方userlist.put(jobj.getString("FRIENDID"), easeUser);
}

//这是就是将数据转换成Easeuser对象 的原有方式 已经注释掉了 其他代码没有做修改
/*for (String username : usernames) {
EaseUser user = new EaseUser(username);
EaseCommonUtils.setUserInitialLetter(user);
userlist.put(username, user); }*/


// save the contact list to cache getContactList().clear(); getContactList().putAll(userlist); // save the contact list to database
UserDao dao = new UserDao(appContext);
List<EaseUser> users = new ArrayList<EaseUser>(userlist.values());
Log.e(TAG,"获取联系人");
//报讯联系人的数据就是在这了dao.saveContactList(users);
demoModel.setContactSynced(true);
EMLog.d(TAG, "set contact syn status to true");
isContactsSyncedWithServer = true; isSyncingContactsWithServer = false;
//notify sync success notifyContactsSyncListener(true); getUserProfileManager().asyncFetchContactInfosFromServer(usernames, new EMValueCallBack<List<EaseUser>>() {
@Override public void onSuccess(List<EaseUser> uList) {
updateContactList(uList);
getUserProfileManager().notifyContactInfosSyncListener(true);
}
@Override public void onError(int error, String errorMsg) { } });
if (callback != null) { callback.onSuccess(usernames); } } }
catch (HyphenateException e) { d
emoModel.setContactSynced(false);
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false);
e.printStackTrace();
if (callback != null) {
callback.onError(e.getErrorCode(), e.toString()); } }
catch (JSONException e) { e.printStackTrace(); } } }.start(); }
以上就是我的代码了   希望有用  我已经解决昵称的问题了 至于头像也是一样的道理了
之前的文章有很多问题 这里给小伙们说声对不起了 查看全部
在设置时要说明 好友数据由app的服务器提供的  所以服务端也要集成
注意 我的页面以及类都是从Demo中复制过来的
我们必须要知道好友数据是在什么位置进行数据适配的
在UserDao中有一个方法是saveContactList这个就是进行好友数据保存的操作了

之前我自己创建了一个数据库  进行操作发现出现很多问题  修改的地方也比较多 走了很多弯路
这次经过观察  Demo已经为我们创建了数据库和表 我们只需要在正确的位置把我们获取的数据保存起来就可以了
那么我们的任务就是定位这个方法是在哪调用的,经过代码的跟踪,最终定位到这个位置在
DemoHelper中asyncFetchContactsFromServer()方法
这个方法在没有修改的情况下是从环信服务器获取的好友数据
为了方便我把代码贴出来
public void asyncFetchContactsFromServer(final EMValueCallBack<List<String>> callback) {
if (isSyncingContactsWithServer) {
return;
}
isSyncingContactsWithServer = true;
new Thread() {
@Override public void run() {
List<String> usernames = null;
try {
usernames = EMClient.getInstance().contactManager().getAllContactsFromServer(); // in case that logout already before server returns, we should return immediately
if (!isLoggedIn()) {
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false); return;
}

//这里就是开始从自己app的服务器获取好友数据了
Map<String, EaseUser> userlist = new HashMap<String, EaseUser>();
String url = AppConfig.BASE_URL+AppConfig.GETFRIENDS;
HashMap<String, String> map = new HashMap<>(); map.put("userName",PreforenceUtils.getStringData("userInfo","hxid"));
Log.e(TAG,url);
MyHttpUtils myHttpUtils = new MyHttpUtils();
String s = myHttpUtils.httpPost(url, "", "&user", map.toString());
Log.e(TAG,s);
JSONArray jarr = new JSONArray(s);
if(jarr.length()!=0||jarr != null){
for (int i = 0; i < jarr.length(); i++) {
JSONObject jobj = (JSONObject) jarr.get(i);
EaseUser easeUser = new EaseUser(jobj.getString("FRIENDID")); easeUser.setNick(jobj.getString("FRIENDNICKNAME"));
easeUser.setAvatar("");
Log.e(TAG,easeUser.toString());
EaseCommonUtils.setUserInitialLetter(easeUser);

//这是关键的地方
userlist.put(jobj.getString("FRIENDID"), easeUser);
}

//这是就是将数据转换成Easeuser对象 的原有方式 已经注释掉了 其他代码没有做修改
/*for (String username : usernames) {
EaseUser user = new EaseUser(username);
EaseCommonUtils.setUserInitialLetter(user);
userlist.put(username, user); }*/


// save the contact list to cache getContactList().clear(); getContactList().putAll(userlist); // save the contact list to database
UserDao dao = new UserDao(appContext);
List<EaseUser> users = new ArrayList<EaseUser>(userlist.values());
Log.e(TAG,"获取联系人");

//报讯联系人的数据就是在这了
dao.saveContactList(users);
demoModel.setContactSynced(true);
EMLog.d(TAG, "set contact syn status to true");
isContactsSyncedWithServer = true; isSyncingContactsWithServer = false;
//notify sync success notifyContactsSyncListener(true); getUserProfileManager().asyncFetchContactInfosFromServer(usernames, new EMValueCallBack<List<EaseUser>>() {
@Override public void onSuccess(List<EaseUser> uList) {
updateContactList(uList);
getUserProfileManager().notifyContactInfosSyncListener(true);
}
@Override public void onError(int error, String errorMsg) { } });
if (callback != null) { callback.onSuccess(usernames); } } }
catch (HyphenateException e) { d
emoModel.setContactSynced(false);
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false);
e.printStackTrace();
if (callback != null) {
callback.onError(e.getErrorCode(), e.toString()); } }
catch (JSONException e) { e.printStackTrace(); } } }.start(); }

以上就是我的代码了   希望有用  我已经解决昵称的问题了 至于头像也是一样的道理了
之前的文章有很多问题 这里给小伙们说声对不起了
1
评论

关于Android Studio如何正确集成环信3.1.5 SDK EaseUI

LoneWolf 发表了文章 • 326 次浏览 • 2017-01-05 16:37 • 来自相关话题

1 下载sdk3.1.5后,在examples下找到easeui



2 将build.gradle删除(这一点非常重要,因为没有删除这个文件,后面出现的冲突浪费了我三四天时间)

3 在examples-ChatDemoUI3.0找到libs

4 在你的 (注意是主modules) 主modules-main下创建jniLibs文件夹,把demo中的jar包全部父之过去

5 之后就是导入easeui了(注意:确认build.gradle已经删除)



接下来是添加依赖,选择菜单栏上Project Structure,找到自己的工程,在Dependencies找到绿色的“+”,选择第三个“Module dependency”

6 导入easeui后发现他自动生成的build.gradle,这时才是我们需要的,将easeui的v4版本提升到23

compile'com.android.support:support-v4:23.+'
7 这时应该编译通过了,有些机子运行发现以下问题

java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[[dex file "/data/data/com.xxx.xxx/files/instant-run/dex/slice-support-annotations-24.1.0_ce9c5697cabea4565e89d9bb7a81deef74f26296-classes.dex", dex file "/data/data/com.xxx

如果遇到UnsatisfiedLinkError的问题,则在easeUI依赖库-jniLibs创建armeabi-v7a,然后将armeabi的.so文件拷贝一份进去即可。

之后你就可以根据你的需要进行自定义了,可以参考ChatDemoUI3.0,里面的逻辑很齐全了



这是导入easeui的正确方式,是我用几天换来的宝贵经验,希望能帮到大家,多多打赏哈 查看全部
1 下载sdk3.1.5后,在examples下找到easeui



2 将build.gradle删除(这一点非常重要,因为没有删除这个文件,后面出现的冲突浪费了我三四天时间)

3 在examples-ChatDemoUI3.0找到libs

4 在你的 (注意是主modules) 主modules-main下创建jniLibs文件夹,把demo中的jar包全部父之过去

5 之后就是导入easeui了(注意:确认build.gradle已经删除)



接下来是添加依赖,选择菜单栏上Project Structure,找到自己的工程,在Dependencies找到绿色的“+”,选择第三个“Module dependency”

6 导入easeui后发现他自动生成的build.gradle,这时才是我们需要的,将easeui的v4版本提升到23

compile'com.android.support:support-v4:23.+'
7 这时应该编译通过了,有些机子运行发现以下问题

java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[[dex file "/data/data/com.xxx.xxx/files/instant-run/dex/slice-support-annotations-24.1.0_ce9c5697cabea4565e89d9bb7a81deef74f26296-classes.dex", dex file "/data/data/com.xxx

如果遇到UnsatisfiedLinkError的问题,则在easeUI依赖库-jniLibs创建armeabi-v7a,然后将armeabi的.so文件拷贝一份进去即可。

之后你就可以根据你的需要进行自定义了,可以参考ChatDemoUI3.0,里面的逻辑很齐全了



这是导入easeui的正确方式,是我用几天换来的宝贵经验,希望能帮到大家,多多打赏哈
1
回复
5
回复

聊天界面多刷新几次就会蹦 环信_iOS EaseUI iOS环信UI集成 环信 iOS集成 iOS环信聊天

环信沈冲 回复了问题 • 3 人关注 • 425 次浏览 • 2016-11-27 20:02 • 来自相关话题

3
回复

如何把联系人查找的结果的视图改为其他颜色。。 环信_iOS iOS环信导航条 EaseUI 联系人 iOS 好友

mazhihua 回复了问题 • 2 人关注 • 367 次浏览 • 2016-11-24 16:11 • 来自相关话题

3
回复

iOS无法收到推送,官网文档不够详细 EaseUI 环信_iOS

一等到天幻 回复了问题 • 3 人关注 • 757 次浏览 • 2016-11-20 11:25 • 来自相关话题

89
回复

【有奖调查】环信EaseUI使用调查 EaseUI 社区活动 有奖调查

HI!RAVY 回复了问题 • 78 人关注 • 14855 次浏览 • 2016-11-13 19:12 • 来自相关话题

3
回复

聊天页面的头像昵称有时显示有时不显示 头像 好友 EaseUI 环信_iOS

BluesACE 回复了问题 • 4 人关注 • 490 次浏览 • 2016-11-04 17:29 • 来自相关话题

2
最佳

ios如何添加Emoji哇 SDK emoji 环信_iOS iOS EaseUI

beyond 回复了问题 • 2 人关注 • 492 次浏览 • 2016-11-03 18:58 • 来自相关话题

1
回复

Xcode 8 下真机发送位置无反应 位置共享 定位 环信_iOS iOS EaseUI

zl 回复了问题 • 2 人关注 • 408 次浏览 • 2016-11-03 18:08 • 来自相关话题

1
回复
1
回复

iOS EASE UI3.0 怎么存储昵称和头像到本地 环信 iOS 头像昵称集成 easeui集成 EaseUI

环信沈冲 回复了问题 • 2 人关注 • 334 次浏览 • 2016-10-22 18:49 • 来自相关话题

1
回复

运行app直接报错,导入的是EaseUI包 EaseUI

Wxin 回复了问题 • 2 人关注 • 589 次浏览 • 2016-10-17 17:34 • 来自相关话题

1
回复

导入EaseUi v4包保错 EaseUI

Wxin 回复了问题 • 2 人关注 • 447 次浏览 • 2016-10-14 18:29 • 来自相关话题

1
回复

与海外用户视频&语音聊天通话质量很差,请问有解决办法吗 环信_iOS iOS EaseUI

环信沈冲 回复了问题 • 2 人关注 • 456 次浏览 • 2016-10-10 18:36 • 来自相关话题

1
回复

集成Ease UI启动闪退 环信_Android easeui 集成 EaseUI

Wxin 回复了问题 • 2 人关注 • 1029 次浏览 • 2016-10-02 09:16 • 来自相关话题

1
回复

iOS键盘的颜色如何改变 环信_iOS iOS环信聊天 环信 iOS集成 EaseUI iOS环信UI集成

mazhihua 回复了问题 • 2 人关注 • 642 次浏览 • 2016-09-30 17:43 • 来自相关话题

2
回复

iOS环信头像和昵称 iOS环信导航条 环信_iOS iOS 头像和 昵称的问题 EaseUI

su酥酥 回复了问题 • 2 人关注 • 456 次浏览 • 2016-09-27 18:19 • 来自相关话题

条新动态, 点击查看
环信沈冲

环信沈冲 回答了问题 • 2015-12-02 12:26 • 1 个回复 不感兴趣

iOS 把EaseUI导入自己的工程报错,求解

赞同来自:

MJRefresh冲突了,如果自己的项目中有使用这个三方,将我们的删去即可,如果删掉还不行,建议使用2.0demo的UI集成。
MJRefresh冲突了,如果自己的项目中有使用这个三方,将我们的删去即可,如果删掉还不行,建议使用2.0demo的UI集成。
环信沈冲

环信沈冲 回答了问题 • 2015-12-02 12:52 • 1 个回复 不感兴趣

导入Ease到自己的工程MWPhoto属性报错

赞同来自:

在pch文件中导入头文件:#import "EaseUI.h",如果您自己项目中有使用MBPhoto,可以将我们的重复的三方删掉。
在pch文件中导入头文件:#import "EaseUI.h",如果您自己项目中有使用MBPhoto,可以将我们的重复的三方删掉。
十一岁的加重

十一岁的加重 回答了问题 • 2016-09-26 18:45 • 2 个回复 不感兴趣

iOS集成EaseUI报错

赞同来自:

 duplicate文件重复,看看是不是MJRefresh或者MBProgressHUD,
 
你在Pod里已经集成了,根据自己需要删除SDK里的或者Pod里的,我个人是这样解决的
 duplicate文件重复,看看是不是MJRefresh或者MBProgressHUD,
 
你在Pod里已经集成了,根据自己需要删除SDK里的或者Pod里的,我个人是这样解决的
zl

zl 回答了问题 • 2016-07-05 18:44 • 4 个回复 不感兴趣

会话列表具体怎么集成啊?

赞同来自:

机器人的都删掉。ConversationListViewController继承EaseConversationListViewController  ,viewdidload调用    [self tableViewDidTriggerHeaderRefre... 显示全部 »
机器人的都删掉。ConversationListViewController继承EaseConversationListViewController  ,viewdidload调用    [self tableViewDidTriggerHeaderRefresh];
[[EaseSDKHelper shareHelper] hyphenateApplication:application
                    didFinishLaunchingWithOptions:launchOptions
    ... 显示全部 »
[[EaseSDKHelper shareHelper] hyphenateApplication:application
                    didFinishLaunchingWithOptions:launchOptions
                                           appkey:appkey
                                     apnsCertName:apnsCertName
                                      otherConfig:@{kSDKConfigEnableConsoleLogger:[NSNumber numberWithBool:YES]}];
Swift

Swift 回答了问题 • 2016-11-03 16:46 • 2 个回复 不感兴趣

ios如何添加Emoji哇

赞同来自:

已解决EaseMessageViewController在的viewdidload方法的
第一行添加:[self setupEmotion];
最后一行添加: EaseEmotionManager *manager= [[EaseEmotionManager ... 显示全部 »
已解决EaseMessageViewController在的viewdidload方法的
第一行添加:[self setupEmotion];
最后一行添加: EaseEmotionManager *manager= [[EaseEmotionManager alloc] initWithType:EMEmotionDefault emotionRow:3 emotionCol:7 emotions:[EaseEmoji allEmoji]]; [self.faceView setEmotionManagers:@[manager]];
然后神奇的出现了emoji
1
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 64 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能
 
Android篇
环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图
 昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
持续更新ing...
  查看全部
2
评论

【视频教程+源码】基于环信IM做一个仿微信APP-更新ing 郭永峰 高仿微信 仿微信 环信 XMPP

郭永峰 发表了文章 • 679 次浏览 • 2017-05-16 15:29 • 来自相关话题

我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。
    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
4月12号成立工作室,现在18号,过了一个星期一个星期录了5天的环信教程视频,我将放在网盘免费分享环信的教程视频主要是针对有开发经验者教程主要是使用环信来模仿微信来做一个即时通讯的案例课程主要是先讲socket基础 -> 环信 ->自定义协议希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解同时能希望大家在面试时,在即时通讯这块不在陌生
  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏






支付宝打赏






谢谢大家的支持,个人微信号清扫描下面张图






 
郭永峰IT交流QQ群请加:596441895 查看全部
我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。

    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
  1. 4月12号成立工作室,现在18号,过了一个星期
  2. 一个星期录了5天的环信教程视频,我将放在网盘免费分享
  3. 环信的教程视频主要是针对有开发经验者
  4. 教程主要是使用环信来模仿微信来做一个即时通讯的案例
  5. 课程主要是先讲socket基础 -> 环信 ->自定义协议
  6. 希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解
  7. 同时能希望大家在面试时,在即时通讯这块不在陌生

  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏

微信.png


支付宝打赏

支付宝.png


谢谢大家的支持,个人微信号清扫描下面张图

个人.png


 
郭永峰IT交流QQ群请加:596441895
1
评论

【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了 环信公开课 昵称头像 环信大表哥

beyond 发表了文章 • 597 次浏览 • 2017-05-08 11:55 • 来自相关话题

 ​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫
  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
如何利用消息扩展属性显示昵称头像?如何通过APP服务器处理昵称头像的显示?昵称头像的本地缓存策略?音视频通话如何显示昵称头像?

关于环信大表哥:
   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;

先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。





环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见”
ios简版demo地址
Android简版demo地址 查看全部
 
​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫

  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
  1. 如何利用消息扩展属性显示昵称头像?
  2. 如何通过APP服务器处理昵称头像的显示?
  3. 昵称头像的本地缓存策略?
  4. 音视频通话如何显示昵称头像?


关于环信大表哥:

   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;



先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。
QQ截图20170508115114.jpg


环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见
ios简版demo地址
Android简版demo地址
1
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 64 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能
 
Android篇
环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图
 昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
持续更新ing...
  查看全部
2
评论

【视频教程+源码】基于环信IM做一个仿微信APP-更新ing 郭永峰 高仿微信 仿微信 环信 XMPP

郭永峰 发表了文章 • 679 次浏览 • 2017-05-16 15:29 • 来自相关话题

我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。
    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
4月12号成立工作室,现在18号,过了一个星期一个星期录了5天的环信教程视频,我将放在网盘免费分享环信的教程视频主要是针对有开发经验者教程主要是使用环信来模仿微信来做一个即时通讯的案例课程主要是先讲socket基础 -> 环信 ->自定义协议希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解同时能希望大家在面试时,在即时通讯这块不在陌生
  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏






支付宝打赏






谢谢大家的支持,个人微信号清扫描下面张图






 
郭永峰IT交流QQ群请加:596441895 查看全部
我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。

    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
  1. 4月12号成立工作室,现在18号,过了一个星期
  2. 一个星期录了5天的环信教程视频,我将放在网盘免费分享
  3. 环信的教程视频主要是针对有开发经验者
  4. 教程主要是使用环信来模仿微信来做一个即时通讯的案例
  5. 课程主要是先讲socket基础 -> 环信 ->自定义协议
  6. 希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解
  7. 同时能希望大家在面试时,在即时通讯这块不在陌生

  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏

微信.png


支付宝打赏

支付宝.png


谢谢大家的支持,个人微信号清扫描下面张图

个人.png


 
郭永峰IT交流QQ群请加:596441895
1
评论

【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了 环信公开课 昵称头像 环信大表哥

beyond 发表了文章 • 597 次浏览 • 2017-05-08 11:55 • 来自相关话题

 ​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫
  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
如何利用消息扩展属性显示昵称头像?如何通过APP服务器处理昵称头像的显示?昵称头像的本地缓存策略?音视频通话如何显示昵称头像?

关于环信大表哥:
   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;

先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。





环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见”
ios简版demo地址
Android简版demo地址 查看全部
 
​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫

  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
  1. 如何利用消息扩展属性显示昵称头像?
  2. 如何通过APP服务器处理昵称头像的显示?
  3. 昵称头像的本地缓存策略?
  4. 音视频通话如何显示昵称头像?


关于环信大表哥:

   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;



先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。
QQ截图20170508115114.jpg


环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见
ios简版demo地址
Android简版demo地址
1
回复

EaseUI3.0在7.0中,文字消息经常显示不全 EaseUI Easeui 3.x

回复

lzan13 回复了问题 • 2 人关注 • 106 次浏览 • 2017-05-08 19:42 • 来自相关话题

4
回复

环信cocoapods集成EaseUI 继承时报错 iOS swift EaseUI cocoapod

回复

yúañ來諟ィ厼ˇ¶﹏,g 回复了问题 • 2 人关注 • 105 次浏览 • 2017-05-04 09:39 • 来自相关话题

1
回复

集成EaseUI时报错 EaseUI

回复

zhoumin 回复了问题 • 2 人关注 • 146 次浏览 • 2017-04-16 11:59 • 来自相关话题

1
回复

字符串未定义错误 EaseUI

回复

zhoumin 回复了问题 • 2 人关注 • 82 次浏览 • 2017-04-16 09:32 • 来自相关话题

1
回复

Eclipse 集成 EaseUI 库报错,NoClassDefFoundError 环信_Android EaseUI eclipse

回复

Wxin 回复了问题 • 2 人关注 • 148 次浏览 • 2017-04-15 21:53 • 来自相关话题

1
回复

环信IOS个人信息、头像不能用了吗?还是更新什么了? 会话列表 好友 EaseUI 环信_iOS

回复

donghai 回复了问题 • 2 人关注 • 162 次浏览 • 2017-04-08 07:00 • 来自相关话题

1
回复

新手求问Androidstudio导入环信easeUI EaseUI

回复

衣冠禽兽 回复了问题 • 1 人关注 • 219 次浏览 • 2017-03-09 03:38 • 来自相关话题

5
回复

聊天界面多刷新几次就会蹦 环信_iOS EaseUI iOS环信UI集成 环信 iOS集成 iOS环信聊天

回复

环信沈冲 回复了问题 • 3 人关注 • 425 次浏览 • 2016-11-27 20:02 • 来自相关话题

3
回复

如何把联系人查找的结果的视图改为其他颜色。。 环信_iOS iOS环信导航条 EaseUI 联系人 iOS 好友

回复

mazhihua 回复了问题 • 2 人关注 • 367 次浏览 • 2016-11-24 16:11 • 来自相关话题

3
回复

iOS无法收到推送,官网文档不够详细 EaseUI 环信_iOS

回复

一等到天幻 回复了问题 • 3 人关注 • 757 次浏览 • 2016-11-20 11:25 • 来自相关话题

89
回复

【有奖调查】环信EaseUI使用调查 EaseUI 社区活动 有奖调查

回复

HI!RAVY 回复了问题 • 78 人关注 • 14855 次浏览 • 2016-11-13 19:12 • 来自相关话题

3
回复

聊天页面的头像昵称有时显示有时不显示 头像 好友 EaseUI 环信_iOS

回复

BluesACE 回复了问题 • 4 人关注 • 490 次浏览 • 2016-11-04 17:29 • 来自相关话题

2
最佳

ios如何添加Emoji哇 SDK emoji 环信_iOS iOS EaseUI

回复

beyond 回复了问题 • 2 人关注 • 492 次浏览 • 2016-11-03 18:58 • 来自相关话题

1
回复

Xcode 8 下真机发送位置无反应 位置共享 定位 环信_iOS iOS EaseUI

回复

zl 回复了问题 • 2 人关注 • 408 次浏览 • 2016-11-03 18:08 • 来自相关话题

1
回复

iOS EASE UI3.0 怎么存储昵称和头像到本地 环信 iOS 头像昵称集成 easeui集成 EaseUI

回复

环信沈冲 回复了问题 • 2 人关注 • 334 次浏览 • 2016-10-22 18:49 • 来自相关话题

1
回复

运行app直接报错,导入的是EaseUI包 EaseUI

回复

Wxin 回复了问题 • 2 人关注 • 589 次浏览 • 2016-10-17 17:34 • 来自相关话题

1
回复

导入EaseUi v4包保错 EaseUI

回复

Wxin 回复了问题 • 2 人关注 • 447 次浏览 • 2016-10-14 18:29 • 来自相关话题

1
回复

与海外用户视频&语音聊天通话质量很差,请问有解决办法吗 环信_iOS iOS EaseUI

回复

环信沈冲 回复了问题 • 2 人关注 • 456 次浏览 • 2016-10-10 18:36 • 来自相关话题

1
回复

集成Ease UI启动闪退 环信_Android easeui 集成 EaseUI

回复

Wxin 回复了问题 • 2 人关注 • 1029 次浏览 • 2016-10-02 09:16 • 来自相关话题

1
回复

iOS键盘的颜色如何改变 环信_iOS iOS环信聊天 环信 iOS集成 EaseUI iOS环信UI集成

回复

mazhihua 回复了问题 • 2 人关注 • 642 次浏览 • 2016-09-30 17:43 • 来自相关话题

2
回复

iOS环信头像和昵称 iOS环信导航条 环信_iOS iOS 头像和 昵称的问题 EaseUI

回复

su酥酥 回复了问题 • 2 人关注 • 456 次浏览 • 2016-09-27 18:19 • 来自相关话题

2
最佳

iOS集成EaseUI报错 EaseUI

回复

十一岁的加重 回复了问题 • 3 人关注 • 1109 次浏览 • 2016-09-26 18:45 • 来自相关话题

1
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 64 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能
 
Android篇
环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图
 昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
持续更新ing...
  查看全部
2
评论

【视频教程+源码】基于环信IM做一个仿微信APP-更新ing 郭永峰 高仿微信 仿微信 环信 XMPP

郭永峰 发表了文章 • 679 次浏览 • 2017-05-16 15:29 • 来自相关话题

我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。
    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
4月12号成立工作室,现在18号,过了一个星期一个星期录了5天的环信教程视频,我将放在网盘免费分享环信的教程视频主要是针对有开发经验者教程主要是使用环信来模仿微信来做一个即时通讯的案例课程主要是先讲socket基础 -> 环信 ->自定义协议希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解同时能希望大家在面试时,在即时通讯这块不在陌生
  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏






支付宝打赏






谢谢大家的支持,个人微信号清扫描下面张图






 
郭永峰IT交流QQ群请加:596441895 查看全部
我只是一个普通人,做人要谦虚。
我不是大神,我也不是很厉害的。
天外有天,人外有人。
老师引入门,修行靠个人。
希望能帮助大家,谢谢。

    大家好,我是郭永峰(峰哥) | 一个普通大学计算机系毕业的大学生,曾就职于澳门遊澳集团有限公司,负责大型银联支付业务系统、跨国际短信业务系统(基于电信的SGIP)以及集团内部通讯系统 (负责android和openfire后台二次开发)的主要开发任务,担任项目负责人。13年就职于广州拓谷科技有限公司负责“酷蛙”车联网产品研发及汽车销售产品研发。14来年到17年2月份,就职于国内知名教育机构,负责教学研发及授课的工作。
 
本人现状况:
  
   在家录制教学视频(无收入),搞工作室,组建团队成立公司,如果大家觉得分享内容很喜欢,可以给我打点赏支持本人的工作室,二维码在文末,就不影响阅读了。

 
郭永峰IT教育工作室于2017年4月12日成立!
 
成立原因:

希望把近10年来从事IT互联网的知识分享给大家,包括Linux,WindowServer,Java,PHP,Android,iOS,H5等等等。
 

进入正题,本套课程基于环信IM教大家如何做一个类似微信的APP,只用于技术交流,请勿用于任何商业用途。
  1. 4月12号成立工作室,现在18号,过了一个星期
  2. 一个星期录了5天的环信教程视频,我将放在网盘免费分享
  3. 环信的教程视频主要是针对有开发经验者
  4. 教程主要是使用环信来模仿微信来做一个即时通讯的案例
  5. 课程主要是先讲socket基础 -> 环信 ->自定义协议
  6. 希望这些教程视频能帮助大家,对即时通讯、socket和自定义协议有个较深入的了解
  7. 同时能希望大家在面试时,在即时通讯这块不在陌生

  持续更新

第一阶段:即时通讯的了解和微信APP开发前的准备!

【视频教程+源码】基于环信IM做一个仿微信APP-01.即时通讯简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-02.XMPP简介(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-03.XMPP实现即时通信的准备工作(了解)

【视频教程+源码】基于环信IM做一个仿微信APP-04.环信简介(了解) 

【视频教程+源码】基于环信IM做一个仿微信APP-05.集成环信的前提准备(掌握)
 
【视频教程+源码】基于环信IM做一个仿微信APP-06.环信SDK的版本的区别(掌握)

【视频教程+源码】基于环信IM做一个仿微信APP-07.微信-项目创建及代码目录结构规范(MVC)

【视频教程+源码】基于环信IM做一个仿微信APP-08.微信-集成环信SDK

【视频教程+源码】基于环信IM做一个仿微信APP-09.微信-登录界面排版

【视频教程+源码】基于环信IM做一个仿微信APP-10.微信-主界面搭建

【视频教程+源码】基于环信IM做一个仿微信APP-11.微信-注册功能

【视频教程+源码】基于环信IM做一个仿微信APP- 12.微信-登录功能

【视频教程+源码】基于环信IM做一个仿微信APP- 13.微信-自动登录

【视频教程+源码】基于环信IM做一个仿微信APP- 14.微信-主动退出
 
【视频教程+源码】基于环信IM做一个仿微信APP-15.微信-在其它设备登录
 
整个项目源码,git地址https://github.com/mayaole/fWeiXin

 微信打赏

微信.png


支付宝打赏

支付宝.png


谢谢大家的支持,个人微信号清扫描下面张图

个人.png


 
郭永峰IT交流QQ群请加:596441895
1
评论

【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了 环信公开课 昵称头像 环信大表哥

beyond 发表了文章 • 597 次浏览 • 2017-05-08 11:55 • 来自相关话题

 ​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫
  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
如何利用消息扩展属性显示昵称头像?如何通过APP服务器处理昵称头像的显示?昵称头像的本地缓存策略?音视频通话如何显示昵称头像?

关于环信大表哥:
   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;

先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。





环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见”
ios简版demo地址
Android简版demo地址 查看全部
 
​ 青年的思想愈被榜样的力量所激动,就愈会发出强烈的光辉-法捷耶夫

  在刚刚过去的五四青年节,环信公开课第12期如期举行,这期公开课嘉宾“环信大表哥”一人手写三端,Android/IOS/服务端信手捏来,关于用户体系更是引经据典一番,整场公开课妙语连珠、妙趣横生。加上环信MM的现场答疑,这样一来便消除了拘谨,活跃了气氛,环信小伙伴们在欢快愉悦的气氛中度过了这个有意义的五四青年节! 

环信公开课12期讲了什么?
  1. 如何利用消息扩展属性显示昵称头像?
  2. 如何通过APP服务器处理昵称头像的显示?
  3. 昵称头像的本地缓存策略?
  4. 音视频通话如何显示昵称头像?


关于环信大表哥:

   马骏斌丨美国海遇网络CTO,传说中的祖传CTO“环信大表哥”,10年研发经验,现任美国海遇网络CTO。曾就职于北京超图从事GIS研发,负责基于SuperMap平台研究GIS算法以及图形处理工具,优化底层三维渲染引擎,协助产品研发进行数据处理或空间分析工作。

环信简版demo作者,开源了基于环信的直播项目-小马直播间,在imgeek、简书等社区发表了数十篇环信教程,他的教程和开源项目累计帮助了超过1W多名开发者集成环信,自己创建了环信互帮互助群,每天"夜黑风高"活跃在群里回答问题+远程写代码,人送外号“环信大表哥”。
 
自2011年2月创办www.C3DN.net(中国3D技术开发者社区),并兼任C3DN站长。创办C3DN,不仅为了延续对3D技术的热爱,最主要是想帮助更多需要帮助的人学习3D开发技术;



先放一张大表哥PPT截图,这个style!你们感(la)受(yan)下(jing)。
QQ截图20170508115114.jpg


环信公开课视频回放:视频观看地址
  
环信公开课第12期讲师PPT在文末下载,最后引用一句某知名互联网公司创始人名言致大表哥“百年之后,你我的肉身终将陨灭,而我们的精神和梦想依然可以在代码中相见
ios简版demo地址
Android简版demo地址
4
评论

Android 依赖EaseUI联系人列表显示昵称 修改之前的发起的那篇文章 Android EaseUI 昵称 昵称头像

LoneWolf 发表了文章 • 230 次浏览 • 2017-02-17 00:54 • 来自相关话题

在设置时要说明 好友数据由app的服务器提供的  所以服务端也要集成
注意 我的页面以及类都是从Demo中复制过来的
我们必须要知道好友数据是在什么位置进行数据适配的
在UserDao中有一个方法是saveContactList这个就是进行好友数据保存的操作了

之前我自己创建了一个数据库  进行操作发现出现很多问题  修改的地方也比较多 走了很多弯路
这次经过观察  Demo已经为我们创建了数据库和表 我们只需要在正确的位置把我们获取的数据保存起来就可以了
那么我们的任务就是定位这个方法是在哪调用的,经过代码的跟踪,最终定位到这个位置在
DemoHelper中asyncFetchContactsFromServer()方法
这个方法在没有修改的情况下是从环信服务器获取的好友数据
为了方便我把代码贴出来public void asyncFetchContactsFromServer(final EMValueCallBack<List<String>> callback) {
if (isSyncingContactsWithServer) {
return;
}
isSyncingContactsWithServer = true;
new Thread() {
@Override public void run() {
List<String> usernames = null;
try {
usernames = EMClient.getInstance().contactManager().getAllContactsFromServer(); // in case that logout already before server returns, we should return immediately
if (!isLoggedIn()) {
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false); return;
}

//这里就是开始从自己app的服务器获取好友数据了Map<String, EaseUser> userlist = new HashMap<String, EaseUser>();
String url = AppConfig.BASE_URL+AppConfig.GETFRIENDS;
HashMap<String, String> map = new HashMap<>(); map.put("userName",PreforenceUtils.getStringData("userInfo","hxid"));
Log.e(TAG,url);
MyHttpUtils myHttpUtils = new MyHttpUtils();
String s = myHttpUtils.httpPost(url, "", "&user", map.toString());
Log.e(TAG,s);
JSONArray jarr = new JSONArray(s);
if(jarr.length()!=0||jarr != null){
for (int i = 0; i < jarr.length(); i++) {
JSONObject jobj = (JSONObject) jarr.get(i);
EaseUser easeUser = new EaseUser(jobj.getString("FRIENDID")); easeUser.setNick(jobj.getString("FRIENDNICKNAME"));
easeUser.setAvatar("");
Log.e(TAG,easeUser.toString());
EaseCommonUtils.setUserInitialLetter(easeUser);
//这是关键的地方userlist.put(jobj.getString("FRIENDID"), easeUser);
}

//这是就是将数据转换成Easeuser对象 的原有方式 已经注释掉了 其他代码没有做修改
/*for (String username : usernames) {
EaseUser user = new EaseUser(username);
EaseCommonUtils.setUserInitialLetter(user);
userlist.put(username, user); }*/


// save the contact list to cache getContactList().clear(); getContactList().putAll(userlist); // save the contact list to database
UserDao dao = new UserDao(appContext);
List<EaseUser> users = new ArrayList<EaseUser>(userlist.values());
Log.e(TAG,"获取联系人");
//报讯联系人的数据就是在这了dao.saveContactList(users);
demoModel.setContactSynced(true);
EMLog.d(TAG, "set contact syn status to true");
isContactsSyncedWithServer = true; isSyncingContactsWithServer = false;
//notify sync success notifyContactsSyncListener(true); getUserProfileManager().asyncFetchContactInfosFromServer(usernames, new EMValueCallBack<List<EaseUser>>() {
@Override public void onSuccess(List<EaseUser> uList) {
updateContactList(uList);
getUserProfileManager().notifyContactInfosSyncListener(true);
}
@Override public void onError(int error, String errorMsg) { } });
if (callback != null) { callback.onSuccess(usernames); } } }
catch (HyphenateException e) { d
emoModel.setContactSynced(false);
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false);
e.printStackTrace();
if (callback != null) {
callback.onError(e.getErrorCode(), e.toString()); } }
catch (JSONException e) { e.printStackTrace(); } } }.start(); }
以上就是我的代码了   希望有用  我已经解决昵称的问题了 至于头像也是一样的道理了
之前的文章有很多问题 这里给小伙们说声对不起了 查看全部
在设置时要说明 好友数据由app的服务器提供的  所以服务端也要集成
注意 我的页面以及类都是从Demo中复制过来的
我们必须要知道好友数据是在什么位置进行数据适配的
在UserDao中有一个方法是saveContactList这个就是进行好友数据保存的操作了

之前我自己创建了一个数据库  进行操作发现出现很多问题  修改的地方也比较多 走了很多弯路
这次经过观察  Demo已经为我们创建了数据库和表 我们只需要在正确的位置把我们获取的数据保存起来就可以了
那么我们的任务就是定位这个方法是在哪调用的,经过代码的跟踪,最终定位到这个位置在
DemoHelper中asyncFetchContactsFromServer()方法
这个方法在没有修改的情况下是从环信服务器获取的好友数据
为了方便我把代码贴出来
public void asyncFetchContactsFromServer(final EMValueCallBack<List<String>> callback) {
if (isSyncingContactsWithServer) {
return;
}
isSyncingContactsWithServer = true;
new Thread() {
@Override public void run() {
List<String> usernames = null;
try {
usernames = EMClient.getInstance().contactManager().getAllContactsFromServer(); // in case that logout already before server returns, we should return immediately
if (!isLoggedIn()) {
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false); return;
}

//这里就是开始从自己app的服务器获取好友数据了
Map<String, EaseUser> userlist = new HashMap<String, EaseUser>();
String url = AppConfig.BASE_URL+AppConfig.GETFRIENDS;
HashMap<String, String> map = new HashMap<>(); map.put("userName",PreforenceUtils.getStringData("userInfo","hxid"));
Log.e(TAG,url);
MyHttpUtils myHttpUtils = new MyHttpUtils();
String s = myHttpUtils.httpPost(url, "", "&user", map.toString());
Log.e(TAG,s);
JSONArray jarr = new JSONArray(s);
if(jarr.length()!=0||jarr != null){
for (int i = 0; i < jarr.length(); i++) {
JSONObject jobj = (JSONObject) jarr.get(i);
EaseUser easeUser = new EaseUser(jobj.getString("FRIENDID")); easeUser.setNick(jobj.getString("FRIENDNICKNAME"));
easeUser.setAvatar("");
Log.e(TAG,easeUser.toString());
EaseCommonUtils.setUserInitialLetter(easeUser);

//这是关键的地方
userlist.put(jobj.getString("FRIENDID"), easeUser);
}

//这是就是将数据转换成Easeuser对象 的原有方式 已经注释掉了 其他代码没有做修改
/*for (String username : usernames) {
EaseUser user = new EaseUser(username);
EaseCommonUtils.setUserInitialLetter(user);
userlist.put(username, user); }*/


// save the contact list to cache getContactList().clear(); getContactList().putAll(userlist); // save the contact list to database
UserDao dao = new UserDao(appContext);
List<EaseUser> users = new ArrayList<EaseUser>(userlist.values());
Log.e(TAG,"获取联系人");

//报讯联系人的数据就是在这了
dao.saveContactList(users);
demoModel.setContactSynced(true);
EMLog.d(TAG, "set contact syn status to true");
isContactsSyncedWithServer = true; isSyncingContactsWithServer = false;
//notify sync success notifyContactsSyncListener(true); getUserProfileManager().asyncFetchContactInfosFromServer(usernames, new EMValueCallBack<List<EaseUser>>() {
@Override public void onSuccess(List<EaseUser> uList) {
updateContactList(uList);
getUserProfileManager().notifyContactInfosSyncListener(true);
}
@Override public void onError(int error, String errorMsg) { } });
if (callback != null) { callback.onSuccess(usernames); } } }
catch (HyphenateException e) { d
emoModel.setContactSynced(false);
isContactsSyncedWithServer = false;
isSyncingContactsWithServer = false;
notifyContactsSyncListener(false);
e.printStackTrace();
if (callback != null) {
callback.onError(e.getErrorCode(), e.toString()); } }
catch (JSONException e) { e.printStackTrace(); } } }.start(); }

以上就是我的代码了   希望有用  我已经解决昵称的问题了 至于头像也是一样的道理了
之前的文章有很多问题 这里给小伙们说声对不起了
1
评论

关于Android Studio如何正确集成环信3.1.5 SDK EaseUI

LoneWolf 发表了文章 • 326 次浏览 • 2017-01-05 16:37 • 来自相关话题

1 下载sdk3.1.5后,在examples下找到easeui



2 将build.gradle删除(这一点非常重要,因为没有删除这个文件,后面出现的冲突浪费了我三四天时间)

3 在examples-ChatDemoUI3.0找到libs

4 在你的 (注意是主modules) 主modules-main下创建jniLibs文件夹,把demo中的jar包全部父之过去

5 之后就是导入easeui了(注意:确认build.gradle已经删除)



接下来是添加依赖,选择菜单栏上Project Structure,找到自己的工程,在Dependencies找到绿色的“+”,选择第三个“Module dependency”

6 导入easeui后发现他自动生成的build.gradle,这时才是我们需要的,将easeui的v4版本提升到23

compile'com.android.support:support-v4:23.+'
7 这时应该编译通过了,有些机子运行发现以下问题

java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[[dex file "/data/data/com.xxx.xxx/files/instant-run/dex/slice-support-annotations-24.1.0_ce9c5697cabea4565e89d9bb7a81deef74f26296-classes.dex", dex file "/data/data/com.xxx

如果遇到UnsatisfiedLinkError的问题,则在easeUI依赖库-jniLibs创建armeabi-v7a,然后将armeabi的.so文件拷贝一份进去即可。

之后你就可以根据你的需要进行自定义了,可以参考ChatDemoUI3.0,里面的逻辑很齐全了



这是导入easeui的正确方式,是我用几天换来的宝贵经验,希望能帮到大家,多多打赏哈 查看全部
1 下载sdk3.1.5后,在examples下找到easeui



2 将build.gradle删除(这一点非常重要,因为没有删除这个文件,后面出现的冲突浪费了我三四天时间)

3 在examples-ChatDemoUI3.0找到libs

4 在你的 (注意是主modules) 主modules-main下创建jniLibs文件夹,把demo中的jar包全部父之过去

5 之后就是导入easeui了(注意:确认build.gradle已经删除)



接下来是添加依赖,选择菜单栏上Project Structure,找到自己的工程,在Dependencies找到绿色的“+”,选择第三个“Module dependency”

6 导入easeui后发现他自动生成的build.gradle,这时才是我们需要的,将easeui的v4版本提升到23

compile'com.android.support:support-v4:23.+'
7 这时应该编译通过了,有些机子运行发现以下问题

java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[[dex file "/data/data/com.xxx.xxx/files/instant-run/dex/slice-support-annotations-24.1.0_ce9c5697cabea4565e89d9bb7a81deef74f26296-classes.dex", dex file "/data/data/com.xxx

如果遇到UnsatisfiedLinkError的问题,则在easeUI依赖库-jniLibs创建armeabi-v7a,然后将armeabi的.so文件拷贝一份进去即可。

之后你就可以根据你的需要进行自定义了,可以参考ChatDemoUI3.0,里面的逻辑很齐全了



这是导入easeui的正确方式,是我用几天换来的宝贵经验,希望能帮到大家,多多打赏哈
1
评论

【环信集成笔记】进阶篇-EaseUI集成以及会话列表开发 EaseUI 环信集成笔记

beyond 发表了文章 • 1414 次浏览 • 2016-09-27 10:41 • 来自相关话题

有人说环信需要服务器和iOS端配合,其实可以两种方式:

1.全有iOS端和环信交互。2.让服务器替我们保存环信密码。

先不说方式,先教大家如何集成。环信里有一个自带已经弄好的EaseUI,如果你对页面的要求不是很大,那就用环信自带的EaseUI开发。我使用的就是环信的EaseUI。为了不影响项目,你先导入需要的系统框架。我使用的是即时通讯V2版本。

集成准备前请看他们的官网文档介绍。http://docs.easemob.com/start/ ... mport

是即时通讯V3,请按照他去添加对应的库!没有安全感的可以全部添加!只要你不限工程大,麻烦就可以。

添加完成以后。下载他的SDK,有几种文件需要你拖进来。1.EaseUIResource.bundle

2.gifimage(包含文件:EMGifImage.h以及.m)

3.EaseMobSDK

4.EaseUI(包括子目录:include,lib,resources*请注意里面不是图片是库,XMPP框架。 )

5.Resource(环信的图片文件夹)

6.ChatViewController(你可以用他们示范demo里拖,这个类就是对话类)

7.CystomizableCell

8.PrefixHeader.pch

9.Localizable.strings如果还是少了什么东西不知道怎么加,请加我QQ:1119718338,我给你发送所有需要的文件,前提请注意加好友时候留言清楚。
如果你前面有一个会话列表页面,例如下图:




如果你也有一个消息页面的话,如果没有什么太多内容,我建议放弃你自己自定义的TableViewCell,因为EaseUI 里有已经写好的消息页面:EaseConversationListViewController

这个页面不用改动太多。如果你发现这个页面为什么不用登录环信账号,环信是这样的:你在AppDelegate登录。

登录的demo为:[[EaseMob sharedInstance].chatManager asyncLoginWithUsername:@“用户的环信账号” password:@“用户的环信密码” completion:^(NSDictionary *loginInfo, EMError *error) {

NSLog(@"error====%@",error);

if (!error)

{

NSLog(@"登录成功");

NSLog(@"===%@",loginInfo);

//获取数据库中数据

[[EaseMob sharedInstance].chatManager loadDataFromDatabase];

}

} onQueue:nil];
当然有登录就有注册

[[EaseMob sharedInstance].chatManager asyncRegisterNewAccount:phone.text password:password2.text withCompletion:^(NSString *username, NSString *password, EMError *error) {

NSLog(@"error====%@",error);

if (!error)

{

NSLog(@"注册成功");

NSLog(@"===%@",loginInfo);

}

} onQueue:nil];

1.只用iOS和环信交互:在你app注册会员的时候,注册成功获得返回值,正确的返回值内去注册环信账号,而环信账号就是用户注册你app的账号,密码需要写死,例如:123456,那么无论谁注册,传给环信的密码都是123456。这样方便登录。如果环信返回给你是注册成功,那么你需要在成功里创建NSUserDeafults存储你的环信账号,密码就不用存了。并且调用环信登录方法。如果不在AppDelegate里写登录,你的APP如果退出了,下次打开就没用了,所以必须时时刻刻登录。所以你需要在AppDelegate登录,账号就是你本地存储的账号。密码还是死的。如果正常流程来说就是:

1.注册自己APP账号-成功-注册环信账号,密码为死的-成功-登录环信账号。

2.登录自己APP账号-成功-登录环信

3.AppDelegate存储账号。


2.让iOS,服务器,环信交互:通过上面的那种方式,跟服务器唯一交互的就是密码,你需要在用户注册你自己产品的时候,密码也注册环信。注册成功,将密码post给服务器,登录的时候成功,服务器不光返回error,msg,还要加一个环信的password,这样你拿到password 可以再进行登录。当然注册的时候Phone和Password需都需要存储,方便在AppDelegate入口类登录。

1.注册自己APP账号-成功-注册环信账号,密码为注册APP的密码-成功-Post密码给服务器-成功-登录环信账号。

2.登录自己APP账号-成功-拿到服务器返回的Password,登录环信账号-成功。

3.AppDelegate存储账号和密码

除了上面两种方式,还有一种就是环信有一个会记录的方法,除了注销会一直存在。怎么简单怎么来。
 
OK,注册成功,我们继续讨论:EaseConversationListViewController

如果你的页面换成了EaseConversationListViewController,那么你不需要做任何操作都可以获取到最新数据,但是你需要点击进入会话页面。




ChatViewController 就是你的会话列表页,关于ChatViewController * chatVc = [[ChatViewController alloc]initWithConversationChatter:model.title conversationType:eConversationTypeChat];

1.model.title 这个会话列表的用户名,你也可以写死。

2.eConversationTypeChat,枚举,这是单人会话,还有群聊等等。

有了这个就可以传到会话列表页了。

会话列表就不多说了,没有这个文件我直接发给你好了。

对了有人会出现这种情况,如下图:





是否发现重复消息。[self tableViewDidTriggerHeaderRefresh]; 检查一下这个方法是不是在chatViewController 和EaseMessageViewCOntroller 的ViewDidLoad 里面都调用了,看如果都有,随便删除一个这个方法。就ok了!
 
关于头像昵称如何能做成活的,思路是:环信有一个方法,可以获取消息列表的信息。




这个方法就在你的根视图里拿出来。能获取到所有消息的环信的账号,如果你们注册的环信账号是手机号的。第一次发请求的话给服务器依次发送这个手机号,获取他的昵称和头像,然后存到本地。下次再次发请求的时候之前获取一下这个信息,有的话直接拿,没有的话就发送请求。
 
现在我在研究如何改变会话列表的名字和头像,因为有些产品的需要,不能展示账号或者手机号,所以如果你还有不懂得地方你加我好友QQ:1119718338,欢迎一起交流。当然如果您觉得对您有帮助,请点赞或打赏!谢谢!
  查看全部
有人说环信需要服务器和iOS端配合,其实可以两种方式:

1.全有iOS端和环信交互。2.让服务器替我们保存环信密码。

先不说方式,先教大家如何集成。环信里有一个自带已经弄好的EaseUI,如果你对页面的要求不是很大,那就用环信自带的EaseUI开发。我使用的就是环信的EaseUI。为了不影响项目,你先导入需要的系统框架。我使用的是即时通讯V2版本。

集成准备前请看他们的官网文档介绍。http://docs.easemob.com/start/ ... mport

是即时通讯V3,请按照他去添加对应的库!没有安全感的可以全部添加!只要你不限工程大,麻烦就可以。

添加完成以后。下载他的SDK,有几种文件需要你拖进来。
1.EaseUIResource.bundle

2.gifimage(包含文件:EMGifImage.h以及.m)

3.EaseMobSDK

4.EaseUI(包括子目录:include,lib,resources*请注意里面不是图片是库,XMPP框架。 )

5.Resource(环信的图片文件夹)

6.ChatViewController(你可以用他们示范demo里拖,这个类就是对话类)

7.CystomizableCell

8.PrefixHeader.pch

9.Localizable.strings
如果还是少了什么东西不知道怎么加,请加我QQ:1119718338,我给你发送所有需要的文件,前提请注意加好友时候留言清楚。
如果你前面有一个会话列表页面,例如下图:
1240.png

如果你也有一个消息页面的话,如果没有什么太多内容,我建议放弃你自己自定义的TableViewCell,因为EaseUI 里有已经写好的消息页面:EaseConversationListViewController

这个页面不用改动太多。如果你发现这个页面为什么不用登录环信账号,环信是这样的:你在AppDelegate登录。

登录的demo为:
[[EaseMob sharedInstance].chatManager asyncLoginWithUsername:@“用户的环信账号” password:@“用户的环信密码” completion:^(NSDictionary *loginInfo, EMError *error) {

NSLog(@"error====%@",error);

if (!error)

{

NSLog(@"登录成功");

NSLog(@"===%@",loginInfo);

//获取数据库中数据

[[EaseMob sharedInstance].chatManager loadDataFromDatabase];

}

} onQueue:nil];
当然有登录就有注册

[[EaseMob sharedInstance].chatManager asyncRegisterNewAccount:phone.text password:password2.text withCompletion:^(NSString *username, NSString *password, EMError *error) {

NSLog(@"error====%@",error);

if (!error)

{

NSLog(@"注册成功");

NSLog(@"===%@",loginInfo);

}

} onQueue:nil];


1.只用iOS和环信交互:在你app注册会员的时候,注册成功获得返回值,正确的返回值内去注册环信账号,而环信账号就是用户注册你app的账号,密码需要写死,例如:123456,那么无论谁注册,传给环信的密码都是123456。这样方便登录。如果环信返回给你是注册成功,那么你需要在成功里创建NSUserDeafults存储你的环信账号,密码就不用存了。并且调用环信登录方法。如果不在AppDelegate里写登录,你的APP如果退出了,下次打开就没用了,所以必须时时刻刻登录。所以你需要在AppDelegate登录,账号就是你本地存储的账号。密码还是死的。如果正常流程来说就是:

1.注册自己APP账号-成功-注册环信账号,密码为死的-成功-登录环信账号。

2.登录自己APP账号-成功-登录环信

3.AppDelegate存储账号。



2.让iOS,服务器,环信交互:通过上面的那种方式,跟服务器唯一交互的就是密码,你需要在用户注册你自己产品的时候,密码也注册环信。注册成功,将密码post给服务器,登录的时候成功,服务器不光返回error,msg,还要加一个环信的password,这样你拿到password 可以再进行登录。当然注册的时候Phone和Password需都需要存储,方便在AppDelegate入口类登录。

1.注册自己APP账号-成功-注册环信账号,密码为注册APP的密码-成功-Post密码给服务器-成功-登录环信账号。

2.登录自己APP账号-成功-拿到服务器返回的Password,登录环信账号-成功。

3.AppDelegate存储账号和密码


除了上面两种方式,还有一种就是环信有一个会记录的方法,除了注销会一直存在。怎么简单怎么来。
 
OK,注册成功,我们继续讨论:EaseConversationListViewController

如果你的页面换成了EaseConversationListViewController,那么你不需要做任何操作都可以获取到最新数据,但是你需要点击进入会话页面。
1039815-3ecd18bb8205386e.jpg

ChatViewController 就是你的会话列表页,关于ChatViewController * chatVc = [[ChatViewController alloc]initWithConversationChatter:model.title conversationType:eConversationTypeChat];

1.model.title 这个会话列表的用户名,你也可以写死。

2.eConversationTypeChat,枚举,这是单人会话,还有群聊等等。


有了这个就可以传到会话列表页了。

会话列表就不多说了,没有这个文件我直接发给你好了。

对了有人会出现这种情况,如下图:

1039815-44d6a06e34d36547.png

是否发现重复消息。[self tableViewDidTriggerHeaderRefresh]; 检查一下这个方法是不是在chatViewController 和EaseMessageViewCOntroller 的ViewDidLoad 里面都调用了,看如果都有,随便删除一个这个方法。就ok了!
 
关于头像昵称如何能做成活的,思路是:环信有一个方法,可以获取消息列表的信息。
1039815-451bc4398ac8a957.png

这个方法就在你的根视图里拿出来。能获取到所有消息的环信的账号,如果你们注册的环信账号是手机号的。第一次发请求的话给服务器依次发送这个手机号,获取他的昵称和头像,然后存到本地。下次再次发请求的时候之前获取一下这个信息,有的话直接拿,没有的话就发送请求。
 
现在我在研究如何改变会话列表的名字和头像,因为有些产品的需要,不能展示账号或者手机号,所以如果你还有不懂得地方你加我好友QQ:1119718338,欢迎一起交流。当然如果您觉得对您有帮助,请点赞或打赏!谢谢!
 
1
评论

Duplicate interface definition for class 'EaseUI'解决办法 iOS EaseUI swift

※樂※ 发表了文章 • 672 次浏览 • 2016-09-05 12:44 • 来自相关话题

今天项目迁移时发现报 Duplicate interface definition for class 'EaseUI' 错误,然后重新修改了EaseUI-Prefix的指定路径就好了!
今天项目迁移时发现报 Duplicate interface definition for class 'EaseUI' 错误,然后重新修改了EaseUI-Prefix的指定路径就好了!
1
评论

Android EaseUI里的百度地图替换为高德地图 EaseUI Android

Wxin 发表了文章 • 5304 次浏览 • 2016-01-30 13:11 • 来自相关话题

鉴于有些客户的项目里要使用高德地图,我就把EaseUI里的百度地图替换为了高德地图,提供给有需要的客户下载使用。
(EaseUI里的类名没有做修改,还是沿用的之前的,想修改的可自行修改)
依赖这个EaseUI之后,需要在项目的清单文件里去配置权限




还有高德地图的appkey和定位服务




我把依赖这个EaseUI写的demo也一并上传了,可以去参考下。
github上的地址:
https://github.com/wangxinjeff/WXEaseUIDemo
我在这里只是简单的实现了高德地图的地位,大家可以根据高德的api自行扩展。 查看全部
鉴于有些客户的项目里要使用高德地图,我就把EaseUI里的百度地图替换为了高德地图,提供给有需要的客户下载使用。
(EaseUI里的类名没有做修改,还是沿用的之前的,想修改的可自行修改)
依赖这个EaseUI之后,需要在项目的清单文件里去配置权限
QQ截图20160130130317.png

还有高德地图的appkey和定位服务
QQ图片20160128201903.png

我把依赖这个EaseUI写的demo也一并上传了,可以去参考下。
github上的地址:
https://github.com/wangxinjeff/WXEaseUIDemo
我在这里只是简单的实现了高德地图的地位,大家可以根据高德的api自行扩展。
3
评论

一个走过弯路的人告诉你 集成iOS-ui3.0 需要注意的事项. iOS 3.0 EaseUI 本地通知和离线推送 常见问题和注意事项

zl 发表了文章 • 5278 次浏览 • 2016-01-08 16:48 • 来自相关话题

 
开场就不擅长了,如题,直接上干货!喜欢请为我点个赞,就是这么直接!
 
 
1:关于easeui和sdk的导入,建议大家手动下载导入,尤其是easeui,这样后期可以定制,更自由。

2:​新下载的sdk文件里面,lib文件下有两个.a库:libEaseMobClientSDK.a是完整的库,libEaseMobClientSDKLite.a是不包含语音通话的轻量版。根据你的项目是否需要语音通话(注意不是发送语音消息,而是类似于QQ电话的实时语音)来选择删掉哪个。这里必须有且只有一个.a库。对应的other link设置 .a====-ObjC/****/ Lite.a====-force_load+路径。

3:注意sdk的依赖库不要少加。另外,文档给的依赖库截图是运行后的效果截图,Xcode会自动把sdk也编译显示出来,所以你在build phases里面添加的时候不用手动再添加环信sdk的库。

4:关于消息通知问题。消息通知分为两种。一种是home键后的app在后台的时候的通知,这时候消息走的还是长连接,所以此时后台的通知要自己做,做一个本地通知,demo已经实现了,具体参考demo mainvc里面的didreceivemessage里面的showNotificationWithMessage:,细心的也会注意到这里也是设置消息声音震动提示的地方。主要要写在你的主视图控制器里。第二种是离线推送,也就是apns,在app被杀掉的时候通知栏里会弹出横幅提示。这需要你上传证书到环信管理后台,详细流程在这里http://community.easemob.com/article/825307504。

5:关于环信SDK在appdelegate里面的配置一定不要少。

6:did开头的回调方法注意:1>.当前页面存在;2>.遵守协议,例如@interface MainViewController () < IChatManagerDelegate>;
3>.添加代理 [[EaseMob sharedInstance].chatManager removeDelegate:self];
 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil] 写在viewdidload里面。

7:关于昵称和头像问题,先参阅文档http://docs.easemob.com/doku.php?id=start:000quickstart:40nickname。

8:关地图定位问题,要在info.plist文件里加上字段NSLocationWhenInUseUsageDescription=需要使用定位,可以参考demo。

9:环信不支持bitcode,build set里面设置为NO。      

10:环信文档里有新手上路一项,里面有很多需求实现的思路,比如@功能的实现思路等,对大家扩展很有帮助,当然后续我们也会丰富更多。地址:http://docs.easemob.com/doku.p ... start。
 
 本篇就先整理这么多吧,有不明白的下方评论留言,后续持续更新! 查看全部
 
开场就不擅长了,如题,直接上干货!喜欢请为我点个赞,就是这么直接!
 
 

1:关于easeui和sdk的导入,建议大家手动下载导入,尤其是easeui,这样后期可以定制,更自由。

2:​新下载的sdk文件里面,lib文件下有两个.a库:libEaseMobClientSDK.a是完整的库,libEaseMobClientSDKLite.a是不包含语音通话的轻量版。根据你的项目是否需要语音通话(注意不是发送语音消息,而是类似于QQ电话的实时语音)来选择删掉哪个。这里必须有且只有一个.a库。对应的other link设置 .a====-ObjC/****/ Lite.a====-force_load+路径。

3:注意sdk的依赖库不要少加。另外,文档给的依赖库截图是运行后的效果截图,Xcode会自动把sdk也编译显示出来,所以你在build phases里面添加的时候不用手动再添加环信sdk的库。

4:关于消息通知问题。消息通知分为两种。一种是home键后的app在后台的时候的通知,这时候消息走的还是长连接,所以此时后台的通知要自己做,做一个本地通知,demo已经实现了,具体参考demo mainvc里面的didreceivemessage里面的showNotificationWithMessage:,细心的也会注意到这里也是设置消息声音震动提示的地方。主要要写在你的主视图控制器里。第二种是离线推送,也就是apns,在app被杀掉的时候通知栏里会弹出横幅提示。这需要你上传证书到环信管理后台,详细流程在这里http://community.easemob.com/article/825307504。

5:关于环信SDK在appdelegate里面的配置一定不要少。

6:did开头的回调方法注意:1>.当前页面存在;2>.遵守协议,例如@interface MainViewController () < IChatManagerDelegate>;
3>.添加代理 [[EaseMob sharedInstance].chatManager removeDelegate:self];
 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil] 写在viewdidload里面。

7:关于昵称和头像问题,先参阅文档http://docs.easemob.com/doku.php?id=start:000quickstart:40nickname。

8:关地图定位问题,要在info.plist文件里加上字段NSLocationWhenInUseUsageDescription=需要使用定位,可以参考demo。

9:环信不支持bitcode,build set里面设置为NO。      

10:环信文档里有新手上路一项,里面有很多需求实现的思路,比如@功能的实现思路等,对大家扩展很有帮助,当然后续我们也会丰富更多。地址:http://docs.easemob.com/doku.p ... start


 
 本篇就先整理这么多吧,有不明白的下方评论留言,后续持续更新!
12
评论

【视频学习】IOS EaseUI集成视频 iOS EaseUI 环信

beyond 发表了文章 • 88443 次浏览 • 2015-12-22 16:27 • 来自相关话题

 


0
评论

关于环信新版EaseUI库导入AndroidStudio问题 Android EaseUI

lzan13 发表了文章 • 12870 次浏览 • 2015-11-18 16:55 • 来自相关话题

环信大牛最新封装了一个供开发者直接使用的UI库 EaseUI,这个可以让大家快速的进行集成环信的sdk进行实现聊天,官方也说了老版本的demo不会进行维护,重点维护这个EaseUI,但是在自己导入的时候有时会有些问题,这里用1.4版本的AndroidStudio导入3.0的demo来说明下;
首先就是打开as导入项目




我喜欢给他改个名字EaseUIDemo




导入完成
我这边导入时没有问题的,有时导入demo或者我们自己创建的项目 然后导入easeui库,并加入到自己的项目中去的时候可能会出现下边这样的错误 ,出现问题的原因的大致因为EaseUI默认引入的v4包的版本20.0.0,但是大家的开发环境不同,sdk版本以及编译器和support库版本不同,会出现错误;




解决办法:这个时候就去点击项目设置,选中EaseUI把sdk版本设置成和build.gradle里一样的版本就行了,如果过低,建议更新sdk,还不行,就把自己的项目的sdk版本和EaseUI都设置成一样,v4库也设置成一样




设置了之后,要记得同步gradle 1 or 2 方式都可以




如果是自己创建的项目想在as中引入EaseUI库,可以点击File->New->Import Module选项




同步发表到个人博客:http://melove.net 查看全部
环信大牛最新封装了一个供开发者直接使用的UI库 EaseUI,这个可以让大家快速的进行集成环信的sdk进行实现聊天,官方也说了老版本的demo不会进行维护,重点维护这个EaseUI,但是在自己导入的时候有时会有些问题,这里用1.4版本的AndroidStudio导入3.0的demo来说明下;
首先就是打开as导入项目
tupian010.png

我喜欢给他改个名字EaseUIDemo
tupian011.png

导入完成
我这边导入时没有问题的,有时导入demo或者我们自己创建的项目 然后导入easeui库,并加入到自己的项目中去的时候可能会出现下边这样的错误 ,出现问题的原因的大致因为EaseUI默认引入的v4包的版本20.0.0,但是大家的开发环境不同,sdk版本以及编译器和support库版本不同,会出现错误;
tupian012.png

解决办法:这个时候就去点击项目设置,选中EaseUI把sdk版本设置成和build.gradle里一样的版本就行了,如果过低,建议更新sdk,还不行,就把自己的项目的sdk版本和EaseUI都设置成一样,v4库也设置成一样


tupian013.png

设置了之后,要记得同步gradle 1 or 2 方式都可以
tupian014.png

如果是自己创建的项目想在as中引入EaseUI库,可以点击File->New->Import Module选项
tupian009.png

同步发表到个人博客:http://melove.net