差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
start:400webimintegration:websdk1.1.1 [2016/11/14 08:55]
zhongzf [常见问题]
start:400webimintegration:websdk1.1.1 [2017/01/22 08:47]
liulj [运行环信 Web IM]
行 31: 行 31:
 运行之前,需要调整 AppKey,打开 static/​js/​easemob.im.config.js,找到: 运行之前,需要调整 AppKey,打开 static/​js/​easemob.im.config.js,找到:
  
-<​code>​+<​code ​javascript>
     appKey : '​easemob-demo#​chatdemoui'​     appKey : '​easemob-demo#​chatdemoui'​
 </​code>​ </​code>​
行 144: 行 144:
  
  
-<sxh javascript>+<code html>
 <​!--sdk相关的js-->​ <​!--sdk相关的js-->​
 <script type='​text/​javascript'​ src='​static/​sdk/​strophe.js'></​script>​ <script type='​text/​javascript'​ src='​static/​sdk/​strophe.js'></​script>​
行 151: 行 151:
 <​!--webim相关配置-->​ <​!--webim相关配置-->​
 <script type="​text/​javascript"​ src="​static/​js/​easemob.im.config.js"></​script>​ <script type="​text/​javascript"​ src="​static/​js/​easemob.im.config.js"></​script>​
-</sxh>+</code>
  
  
行 160: 行 160:
 配置项在static/​js/​easemob.im.config.js文件内 配置项在static/​js/​easemob.im.config.js文件内
  
-<sxh javascript>​+<code javascript>​
 xmppURL: '​im-api.easemob.com', ​   // 环信xmppURL,1.1.0版本之前的客户需配置成:'​ws://​im-api.sandbox.easemob.com/​ws/'​ 或 '​wss://​im-api.easemob.com/​ws/'​ xmppURL: '​im-api.easemob.com', ​   // 环信xmppURL,1.1.0版本之前的客户需配置成:'​ws://​im-api.sandbox.easemob.com/​ws/'​ 或 '​wss://​im-api.easemob.com/​ws/'​
  
行 171: 行 171:
 multiResources:​ false                     // 是否开启多页面同步收消息 multiResources:​ false                     // 是否开启多页面同步收消息
  
-</sxh>+</code>
 //​注:建议xmppURL、apiURL、https三个参数统一,否则ie10以下会报**拒绝访问**的错误。//​ //​注:建议xmppURL、apiURL、https三个参数统一,否则ie10以下会报**拒绝访问**的错误。//​
  
行 178: 行 178:
  
   * https: false   * https: false
-<sxh javascript>​+<code javascript>​
 xmppURL: '​im-api.easemob.com', ​   // 环信xmppURL,1.1.0版本之前的客户需配置成:'​ws://​im-api.sandbox.easemob.com/​ws/'​ xmppURL: '​im-api.easemob.com', ​   // 环信xmppURL,1.1.0版本之前的客户需配置成:'​ws://​im-api.sandbox.easemob.com/​ws/'​
  
行 189: 行 189:
 multiResources:​ false                     // 是否开启多页面同步收消息 multiResources:​ false                     // 是否开启多页面同步收消息
  
-</sxh>+</code>
  
   * https: true   * https: true
  
-<sxh javascript>​+<code javascript>​
 xmppURL: '​im-api.easemob.com', ​   // 环信xmppURL,1.1.0版本之前的客户需配置成:'​wss://​im-api.sandbox.easemob.com/​ws/'​ xmppURL: '​im-api.easemob.com', ​   // 环信xmppURL,1.1.0版本之前的客户需配置成:'​wss://​im-api.sandbox.easemob.com/​ws/'​
  
行 204: 行 204:
 multiResources:​ false                     // 是否开启多页面同步收消息 multiResources:​ false                     // 是否开启多页面同步收消息
  
-</sxh>+</code>
  
  
行 214: 行 214:
 根据用户名/​密码/​昵称注册环信 Web IM。新建注册页面 html 元素。 根据用户名/​密码/​昵称注册环信 Web IM。新建注册页面 html 元素。
  
-<sxh html>+<code html>
 <div id="​regist-box">​ <div id="​regist-box">​
  user<​input type="​text"​ id="​usename"​ />  user<​input type="​text"​ id="​usename"​ />
行 221: 行 221:
  <input type="​button"​ value="​regist" ​ id="​regist"​ />  <input type="​button"​ value="​regist" ​ id="​regist"​ />
 </​div>​ </​div>​
-</sxh>+</code>
  
 编写注册按钮调用 js 函数。 编写注册按钮调用 js 函数。
  
-<sxh javascript>​+<code javascript>​
   $("#​regist"​).on('​click',​ function() {   $("#​regist"​).on('​click',​ function() {
  var options = {  var options = {
行 240: 行 240:
  Easemob.im.Helper.registerUser(options);​  Easemob.im.Helper.registerUser(options);​
   });   });
-</sxh>+</code>
  
 ===== 登录 ===== ===== 登录 =====
行 246: 行 246:
 根据用户名/​密码登录环信 Web IM。新建用户名密码 html 元素。 根据用户名/​密码登录环信 Web IM。新建用户名密码 html 元素。
  
-<sxh html>+<code html>
 <div id="​login-box">​ <div id="​login-box">​
  user<​input type="​text"​ id="​usename"/>​  user<​input type="​text"​ id="​usename"/>​
行 252: 行 252:
  <input type="​button"​ value="​login"​ id="​login"​ />  <input type="​button"​ value="​login"​ id="​login"​ />
 </​div>​ </​div>​
-</sxh>+</code>
  
 编写登录按钮调用 js 函数。 编写登录按钮调用 js 函数。
  
-<sxh javascript>​+<code javascript>​
 $('​login'​).on('​click',​ function() { $('​login'​).on('​click',​ function() {
  //​预留空现实  //​预留空现实
 }) })
-</sxh>+</code>
  
 首先获取用户名/​密码 input 框中的输入值。 首先获取用户名/​密码 input 框中的输入值。
  
-<sxh javascript>​+<code javascript>​
 var username = $("#​usename"​).val();​ var username = $("#​usename"​).val();​
 var pass = $("#​password"​).val();​ var pass = $("#​password"​).val();​
-</sxh>+</code>
  
 创建一个新的连接。 创建一个新的连接。
  
-<sxh javascript>​+<code javascript>​
 var conn = new Easemob.im.Connection();​ var conn = new Easemob.im.Connection();​
-</sxh>+</code>
  
 初始化连接。 初始化连接。
  
-<sxh javascript>​+<code javascript>​
  ​conn.init({  ​conn.init({
      //​预留空现实      //​预留空现实
  });  });
-</sxh>+</code>
  
 在 init 方法中添加 onOpened 回调函数,处理登录信息。 在 init 方法中添加 onOpened 回调函数,处理登录信息。
  
-<sxh javascript>​+<code javascript>​
 //​当连接成功时的回调方法 //​当连接成功时的回调方法
 onOpened : function() { onOpened : function() {
行 291: 行 291:
  conn.setPresence();​  conn.setPresence();​
 } }
-</sxh>+</code>
  
 登录完整 JS 调用代码如下。 登录完整 JS 调用代码如下。
  
-<sxh javascript>​+<code javascript>​
 $(function() { $(function() {
         var conn = null;         var conn = null;
行 315: 行 315:
         });         });
 }); });
-</sxh>+</code>
  
 ===== 消息 ===== ===== 消息 =====
行 323: 行 323:
 创建消息 div。 创建消息 div。
  
-<sxh html>+<code html>
 <div id="​content">​ <div id="​content">​
  消息内容<​textarea id="​text"></​textarea>​  消息内容<​textarea id="​text"></​textarea>​
行 329: 行 329:
     <button id="​send">​发送</​button>​     <button id="​send">​发送</​button>​
 </​div>​ </​div>​
-</sxh>+</code>
  
 编写发送文本消息 js 函数。 编写发送文本消息 js 函数。
  
-<sxh javascript>​+<code javascript>​
 $("#​send"​).on('​click',​function(){ $("#​send"​).on('​click',​function(){
  sendText();​  sendText();​
行 348: 行 348:
  conn.sendTextMessage(options);​  conn.sendTextMessage(options);​
 }; };
-</sxh>+</code>
  
 登录成功后发送文本消息完整 JS 调用代码如下。 登录成功后发送文本消息完整 JS 调用代码如下。
  
-<sxh javascript>​+<code javascript>​
  $(function(){  $(function(){
  var conn = null;  var conn = null;
行 389: 行 389:
  };  };
  });  });
-</sxh>+</code>
  
 ==== 处理文本消息 ==== ==== 处理文本消息 ====
行 395: 行 395:
 登录成功后收到文本消息的处理方法需要在 con.init 方法中调用 onTextMessage 回调函数。 登录成功后收到文本消息的处理方法需要在 con.init 方法中调用 onTextMessage 回调函数。
  
-<sxh javascript>​+<code javascript>​
 conn.init({ conn.init({
   //​收到文本消息时的回调方法   //​收到文本消息时的回调方法
行 411: 行 411:
  }  }
 }); });
-</sxh>+</code>
  
 ===== 好友 ===== ===== 好友 =====
行 419: 行 419:
 在 onOpened : function(){};​ 中添加 getRoster 回调方法,添加获取当前登录人好友列表。 在 onOpened : function(){};​ 中添加 getRoster 回调方法,添加获取当前登录人好友列表。
  
-<sxh javascript>​+<code javascript>​
 conn.init({ conn.init({
  onOpened : function(){  onOpened : function(){
行 435: 行 435:
  }  }
 }); });
-</sxh>+</code>
  
 将数组中的好友名称放入对应的 html 相应元素显示即可。 将数组中的好友名称放入对应的 html 相应元素显示即可。
行 445: 行 445:
 添加发起方,获取要添加好友名称,例如 addfridentId 为要添加的好友的 id。 添加发起方,获取要添加好友名称,例如 addfridentId 为要添加的好友的 id。
  
-<sxh javascript>​+<code javascript>​
 //​addfridentId为页面上要添加好友的输入框html元素id值。 //​addfridentId为页面上要添加好友的输入框html元素id值。
 var user = $('#​addfridentId'​).val();​ var user = $('#​addfridentId'​).val();​
-</sxh>+</code>
  
 添加好友按钮点击时调用 startAddFriend 函数。 添加好友按钮点击时调用 startAddFriend 函数。
  
-<sxh javascript>​+<code javascript>​
 var startAddFriend = function() { var startAddFriend = function() {
   var user = $('#​addfridentId'​).val();​   var user = $('#​addfridentId'​).val();​
行 461: 行 461:
   });   });
 } }
-</sxh>+</code>
  
 === 邀请接受方 ===  === 邀请接受方 === 
行 467: 行 467:
 被添加方,在 con.init 方法中调用 handlePresence 回调方法。 被添加方,在 con.init 方法中调用 handlePresence 回调方法。
  
-<sxh javascript>​+<code javascript>​
 conn.init({ conn.init({
  //​收到联系人订阅请求的回调方法  //​收到联系人订阅请求的回调方法
行 493: 行 493:
  }  }
 }; };
-</sxh>+</code>
  
 ==== 删除好友 ==== ==== 删除好友 ====
行 499: 行 499:
 删除好友,首先获取好友名称,调用 removeRoster 方法。例如删除按钮触发时调用 delFriend 函数。 删除好友,首先获取好友名称,调用 removeRoster 方法。例如删除按钮触发时调用 delFriend 函数。
  
-<sxh javascript>​+<code javascript>​
 var delFriend = function() { var delFriend = function() {
  var user = $('#​delfridentId'​).val();//​获取要删除好友的名称  var user = $('#​delfridentId'​).val();//​获取要删除好友的名称
行 514: 行 514:
     });     });
 } }
-</sxh>+</code>
  
 ===== 关闭连接 ===== ===== 关闭连接 =====
行 520: 行 520:
 当用户退出登录时需要调用 con.onClosed 回调函数。 当用户退出登录时需要调用 con.onClosed 回调函数。
  
-<sxh javascript>​+<code javascript>​
 conn.init({ conn.init({
  //​当连接关闭时的回调方法  //​当连接关闭时的回调方法
行 528: 行 528:
  }  }
 }); });
-</sxh>+</code>
  
 ====== 初始化 ====== ====== 初始化 ======
行 536: 行 536:
 ===== 创建连接 ===== ===== 创建连接 =====
  
-<sxh javascript>​+<code javascript>​
 var conn = new Easemob.im.Connection();​ var conn = new Easemob.im.Connection();​
-</sxh>+</code>
  
 ===== 初始化连接 ===== ===== 初始化连接 =====
  
-<sxh javascript>​+<code javascript>​
 conn.init({ conn.init({
     https : true,//​非必填,url值未设置时有效,优先采用url配置的参数。默认采用http连接,地址为‘http://​im-api.easemob.com/​http-bind/​’,启用https时传递此值,地址为:‘https://​im-api.easemob.com/​http-bind/​’     https : true,//​非必填,url值未设置时有效,优先采用url配置的参数。默认采用http连接,地址为‘http://​im-api.easemob.com/​http-bind/​’,启用https时传递此值,地址为:‘https://​im-api.easemob.com/​http-bind/​’
行 651: 行 651:
     }     }
 }); });
-</sxh>+</code>
  
 ===== 打开连接 ===== ===== 打开连接 =====
行 657: 行 657:
 支持 username/​password 和 username/​token 登录两种方式,SDK 中会根据传入的参数进行自动选择是否登录 usergrid,获取登录成功的 token 后再进行登录聊天,如果使用 token 的打开连接将跳过登录 usergird,直接登录 IM 服务器。 支持 username/​password 和 username/​token 登录两种方式,SDK 中会根据传入的参数进行自动选择是否登录 usergrid,获取登录成功的 token 后再进行登录聊天,如果使用 token 的打开连接将跳过登录 usergird,直接登录 IM 服务器。
  
-<sxh javascript>​+<code javascript>​
 //用户名 //用户名
 var user = $("#​username"​).val();​ var user = $("#​username"​).val();​
行 672: 行 672:
     //​accessToken : '​YWMt8bfZfFk5EeSiAzsQ0OXu4QAAAUpoZFOMJ66ic5m2LOZRhYUsRKZWINA06HI'​     //​accessToken : '​YWMt8bfZfFk5EeSiAzsQ0OXu4QAAAUpoZFOMJ66ic5m2LOZRhYUsRKZWINA06HI'​
 }); });
-</sxh>+</code>
  
 ====== 单聊 ====== ====== 单聊 ======
行 684: 行 684:
 查询好友列表时,要注意 subscription(both、to、from)为不同值的处理,此处默认 both 和 to 的为好友,开发者自定义处理,保持跟 APP 端处理一致即可。 查询好友列表时,要注意 subscription(both、to、from)为不同值的处理,此处默认 both 和 to 的为好友,开发者自定义处理,保持跟 APP 端处理一致即可。
  
-<sxh javascript>​+<code javascript>​
 conn.getRoster({ conn.getRoster({
     success : function(roster) {     success : function(roster) {
行 717: 行 717:
     },    ​     },    ​
 }); });
-</sxh>+</code>
  
 ==== 添加好友 ==== ==== 添加好友 ====
行 723: 行 723:
 通过 SDK 的 subscribe 和 unsubscribe 进行添加或者删除好友操作,登录用户通过注册 onPresence,监听对方的添加或者删除好友请求,并做相应的处理。 通过 SDK 的 subscribe 和 unsubscribe 进行添加或者删除好友操作,登录用户通过注册 onPresence,监听对方的添加或者删除好友请求,并做相应的处理。
  
-<sxh javascript>​+<code javascript>​
 //​easemobwebim-sdk中收到联系人订阅请求的处理方法,具体的type值所对应的值请参考xmpp协议规范 //​easemobwebim-sdk中收到联系人订阅请求的处理方法,具体的type值所对应的值请参考xmpp协议规范
 var handlePresence = function (e){ var handlePresence = function (e){
行 744: 行 744:
  }  }
 }; };
-</sxh>+</code>
  
 ==== 申请添加对方为好友 ==== ==== 申请添加对方为好友 ====
  
-<sxh javascript>​+<code javascript>​
 //​主动申请添加对方为好友 //​主动申请添加对方为好友
 var startAddFriend = function startAddFriend(){ var startAddFriend = function startAddFriend(){
行 766: 行 766:
  return time;  return time;
  }  }
-</sxh>+</code>
  
 ==== 对方收到请求,同意或者拒绝 ==== ==== 对方收到请求,同意或者拒绝 ====
  
-<sxh javascript>​+<code javascript>​
 //​对方收到请求加为好友,接受请求 //​对方收到请求加为好友,接受请求
 $('#​confirm-block-footer-confirmButton'​).click(function() { $('#​confirm-block-footer-confirmButton'​).click(function() {
行 800: 行 800:
  });  });
 }; };
-</sxh>+</code>
  
 对于好友的分组,添加好友时在 addroster 可以指定 group 属性(默认为:default 组),添加好友成功后,好友列表渲染时,根据好友的 group 属性进行分组渲染,实现类似其他聊天工具的自定义好友分组管理的功能。 对于好友的分组,添加好友时在 addroster 可以指定 group 属性(默认为:default 组),添加好友成功后,好友列表渲染时,根据好友的 group 属性进行分组渲染,实现类似其他聊天工具的自定义好友分组管理的功能。
行 808: 行 808:
 取消订阅,同时将对方从自己的好友列表上删除掉。 取消订阅,同时将对方从自己的好友列表上删除掉。
  
-<sxh javascript>​+<code javascript>​
 var delFriend = function(user) { var delFriend = function(user) {
  conn.removeRoster({  conn.removeRoster({
行 820: 行 820:
  });  });
 }; };
-</sxh>+</code>
  
 ===== 消息 ===== ===== 消息 =====
行 826: 行 826:
 ==== 发送文本(表情)聊天消息 ==== ==== 发送文本(表情)聊天消息 ====
  
-<sxh javascript>​+<code javascript>​
 //​发送文本消息 //​发送文本消息
 conn.sendTextMessage({ conn.sendTextMessage({
行 840: 行 840:
     //​ext:​{"​extmsg":"​extends messages"​}//​用户自扩展的消息内容(群聊用法相同)     //​ext:​{"​extmsg":"​extends messages"​}//​用户自扩展的消息内容(群聊用法相同)
 }); });
-</sxh>+</code>
  
  
 ==== 发送命令消息 ==== ==== 发送命令消息 ====
  
-<sxh javascript>​+<code javascript>​
 //​发送cmd消息 //​发送cmd消息
 conn.sendCmdMessage({ conn.sendCmdMessage({
行 853: 行 853:
     //ext :​{"​extmsg":"​extends messages"​}//​用户自扩展的消息内容(群聊用法相同)     //ext :​{"​extmsg":"​extends messages"​}//​用户自扩展的消息内容(群聊用法相同)
 }); });
-</sxh>+</code>
 ==== 发送图片消息 ==== ==== 发送图片消息 ====
  
行 861: 行 861:
   - 发送图片消息,消息体包含图片的基本信息、服务器路径、secret 等,接收方初始化连接中的 onPictureMessage 的格式,根据图片消息内容到服务器下载图片,并进行显示。   - 发送图片消息,消息体包含图片的基本信息、服务器路径、secret 等,接收方初始化连接中的 onPictureMessage 的格式,根据图片消息内容到服务器下载图片,并进行显示。
  
-<sxh javascript>​+<code javascript>​
 function sendPic() { function sendPic() {
     //​图片接收者,如“test1”     //​图片接收者,如“test1”
行 899: 行 899:
     alert("​不支持此图片类型"​ + filetype);     alert("​不支持此图片类型"​ + filetype);
 }; };
-</sxh>+</code>
  
 ==== 发送音频消息 ==== ==== 发送音频消息 ====
行 908: 行 908:
   - 发送音频消息给接收方,消息体包含音频的基本信息、下载路径和 secret 信息等,接收方收到消息后,根据消息体内部的音频下载路径和 secret 路径,下载音频并进行显示。   - 发送音频消息给接收方,消息体包含音频的基本信息、下载路径和 secret 信息等,接收方收到消息后,根据消息体内部的音频下载路径和 secret 路径,下载音频并进行显示。
  
-<sxh javascript>​+<code javascript>​
 function sendAudio () { function sendAudio () {
     var to = curChatUserId;​     var to = curChatUserId;​
行 945: 行 945:
     alert("​不支持此音频类型"​ + filetype);     alert("​不支持此音频类型"​ + filetype);
 }; };
-</sxh>+</code>
  
 ==== 接收消息 ==== ==== 接收消息 ====
行 951: 行 951:
 注册接收消息。 注册接收消息。
  
-<sxh javascript>​+<code javascript>​
 conn.init({ conn.init({
  onTextMessage : function(message) {        },//​收到文本消息处理动作  onTextMessage : function(message) {        },//​收到文本消息处理动作
行 959: 行 959:
  ...  ...
 }); });
-</sxh>+</code>
  
 ==== 处理消息 ==== ==== 处理消息 ====
行 967: 行 967:
 注:对于图片、语音消息需要先进行下载,然后进行显示或者播放处理。如下(下载图片,音频同): 注:对于图片、语音消息需要先进行下载,然后进行显示或者播放处理。如下(下载图片,音频同):
  
-<sxh javascript>​+<code javascript>​
 var handlePictureMessage = function(message) { var handlePictureMessage = function(message) {
 var filename = message.filename;//​文件名称,带文件扩展名 var filename = message.filename;//​文件名称,带文件扩展名
行 1008: 行 1008:
 }; };
 Easemob.im.Helper.download(options);​ Easemob.im.Helper.download(options);​
-</sxh>+</code>
  
 ==== 历史消息 ==== ==== 历史消息 ====
行 1025: 行 1025:
 ===== 查询群组成员 ===== ===== 查询群组成员 =====
  
-<sxh javascript>​+<code javascript>​
 //​根据roomId查询room成员列表 //​根据roomId查询room成员列表
 var queryOccupants = function queryOccupants(roomId) { var queryOccupants = function queryOccupants(roomId) {
行 1052: 行 1052:
     });     });
 }; };
-</sxh>+</code>
  
 ===== 发送文本(表情)聊天消息 ===== ===== 发送文本(表情)聊天消息 =====
  
-<sxh javascript>​+<code javascript>​
 //​发送文本消息 //​发送文本消息
 conn.sendTextMessage({ conn.sendTextMessage({
行 1071: 行 1071:
     msg :'​hello world![(*)][(#​)]'​ //​文本消息+表情     msg :'​hello world![(*)][(#​)]'​ //​文本消息+表情
 }); });
-</sxh>+</code>
  
 ===== 发送图片消息 ===== ===== 发送图片消息 =====
行 1080: 行 1080:
   - 发送图片消息初始化连接中的 onPictureMessage 的格式   - 发送图片消息初始化连接中的 onPictureMessage 的格式
  
-<sxh javascript>​+<code javascript>​
 //​发送图片消息时调用方法 //​发送图片消息时调用方法
 var sendPic = function() { var sendPic = function() {
行 1131: 行 1131:
     alert("​不支持此图片类型"​ + filetype);     alert("​不支持此图片类型"​ + filetype);
 }; };
-</sxh>+</code>
  
 ===== 发送音频消息 ===== ===== 发送音频消息 =====
行 1140: 行 1140:
   - 发送消息   - 发送消息
  
-<sxh javascript>​+<code javascript>​
 //​发送音频消息时调用的方法 //​发送音频消息时调用的方法
 var sendAudio = function() { var sendAudio = function() {
行 1180: 行 1180:
     alert("​不支持此音频类型"​ + filetype);     alert("​不支持此音频类型"​ + filetype);
 }; };
-</sxh>+</code>
  
 ===== 接收及处理消息 ===== ===== 接收及处理消息 =====
行 1190: 行 1190:
 ===== 加入聊天室 ===== ===== 加入聊天室 =====
  
-<sxh javascript>​+<code javascript>​
 conn.joinChatRoom({ conn.joinChatRoom({
     roomId: "​roomId"//​聊天室Id     roomId: "​roomId"//​聊天室Id
 }); });
-</sxh>+</code>
  
 ===== 退出聊天室 ===== ===== 退出聊天室 =====
  
-<sxh javascript>​+<code javascript>​
 conn.quitChatRoom({ conn.quitChatRoom({
     roomId: "​roomId"//​聊天室Id     roomId: "​roomId"//​聊天室Id
 }); });
-</sxh>+</code>
  
 ===== 发送消息到聊天室 ===== ===== 发送消息到聊天室 =====
  
-<sxh javascript>​+<code javascript>​
 conn.sendTextMessage({ conn.sendTextMessage({
     to: "​to",//​目标user     to: "​to",//​目标user
行 1213: 行 1213:
     roomType: "​chatroom"//​必填字段,无需修改     roomType: "​chatroom"//​必填字段,无需修改
 });  }); 
-</sxh>+</code>
  
 ===== 聊天室相关回调 ===== ===== 聊天室相关回调 =====
行 1221: 行 1221:
 ==== 加入成功 ==== ==== 加入成功 ====
  
-<sxh javascript>​+<code javascript>​
 if ( e.type == '​joinChatRoomSuccess'​ ) {\\  ​ if ( e.type == '​joinChatRoomSuccess'​ ) {\\  ​
 } }
-</sxh>+</code>
  
 ==== 加入失败 ==== ==== 加入失败 ====
  
-<sxh javascript>​+<code javascript>​
 if ( e.type == '​joinChatRoomFailed'​ ) {\\  ​ if ( e.type == '​joinChatRoomFailed'​ ) {\\  ​
 } }
-</sxh>+</code>
  
 ==== 聊天室被删除 ==== ==== 聊天室被删除 ====
  
-<sxh javascript>​+<code javascript>​
 if ( e.type == '​deleteGroupChat'​ ) {\\  ​ if ( e.type == '​deleteGroupChat'​ ) {\\  ​
 } }
-</sxh>+</code>
  
 ===== 导入第三方表情包 ===== ===== 导入第三方表情包 =====
  
-<sxh javascript>​+<code javascript>​
 Easemob.im.EMOTIONS = { Easemob.im.EMOTIONS = {
     path: '​static/​img/​faces/'​     path: '​static/​img/​faces/'​
行 1253: 行 1253:
     }     }
 } }
-</sxh>+</code>
  
 ====== 退出 ====== ====== 退出 ======
行 1261: 行 1261:
 关闭连接。 关闭连接。
  
-<sxh javascript>​+<code javascript>​
 //​SDK关闭连接并处理连接状态为CLOSED //​SDK关闭连接并处理连接状态为CLOSED
 conn.close();​ conn.close();​
-</sxh>+</code>
  
 ====== 工具类说明 ====== ====== 工具类说明 ======
行 1272: 行 1272:
 ===== 表情工具类 ===== ===== 表情工具类 =====
  
-<sxh javascript>​+<code javascript>​
 //​返回表情JSON object,格式为: //​返回表情JSON object,格式为:
     {     {
行 1286: 行 1286:
 var base64str = base64.encode(srcstr);​ var base64str = base64.encode(srcstr);​
 var orgstr = base64.decode(srcstr);​ var orgstr = base64.decode(srcstr);​
-</sxh>+</code>
  
 ===== 文件上传工具类 ===== ===== 文件上传工具类 =====
  
-<sxh javascript>​+<code javascript>​
 //​是否能上传file //​是否能上传file
 var canupload = Easemob.im.Helper.isCanUploadFile;​ var canupload = Easemob.im.Helper.isCanUploadFile;​
行 1299: 行 1299:
 //​是否设置mimetype //​是否设置mimetype
 var hasmimetype = Easemob.im.Helper.hasOverrideMimeType;​ var hasmimetype = Easemob.im.Helper.hasOverrideMimeType;​
-</sxh>+</code>
  
 ===== 表情解析工具类 ===== ===== 表情解析工具类 =====
  
-<sxh javascript>​+<code javascript>​
 //​返回表情JSON,格式为: //​返回表情JSON,格式为:
 { {
行 1318: 行 1318:
  
 var emotionMsg = Easemob.im.Helper.parseTextMessage(message);​ var emotionMsg = Easemob.im.Helper.parseTextMessage(message);​
-</sxh>+</code>
  
 ===== 文件上传工具类 ===== ===== 文件上传工具类 =====
  
-<sxh javascript>​+<code javascript>​
 //​返回fileinfo对象,格式为: //​返回fileinfo对象,格式为:
     {     {
行 1358: 行 1358:
 }; };
 var fileSize = getFileSize(options.fileInputId);;​ var fileSize = getFileSize(options.fileInputId);;​
-</sxh>+</code>
  
 ===== 发送 Ajax 请求 ===== ===== 发送 Ajax 请求 =====
  
-<sxh javascript>​+<code javascript>​
 var options = { var options = {
     dataType:'​text',//​default     dataType:'​text',//​default
行 1373: 行 1373:
 }; };
 Easemob.im.Helper.xhr(options);​ Easemob.im.Helper.xhr(options);​
-</sxh>+</code>
  
 ===== 登录 ===== ===== 登录 =====
  
-<sxh javascript>​+<code javascript>​
 var options = { var options = {
     appKey:'​easemob-demo#​chatdemoui',//​default ''​     appKey:'​easemob-demo#​chatdemoui',//​default ''​
行 1386: 行 1386:
 }; };
 Easemob.im.Helper.login2UserGrid(options);​ Easemob.im.Helper.login2UserGrid(options);​
-</sxh>+</code>
  
 ===== 注册 ===== ===== 注册 =====
  
-<sxh javascript>​+<code javascript>​
 var options = { var options = {
  username : '​zjj8',​  username : '​zjj8',​
行 1403: 行 1403:
  };  };
 Easemob.im.Helper.registerUser(options);​ Easemob.im.Helper.registerUser(options);​
-</sxh>+</code>
  
 ===== 内置空函数 ===== ===== 内置空函数 =====
行 1409: 行 1409:
 当所有需要回调的地方接收到函数时,默认采用此函数。 当所有需要回调的地方接收到函数时,默认采用此函数。
  
-<sxh javascript>​+<code javascript>​
 var emptyFn = function() {}; var emptyFn = function() {};
-</sxh>+</code>
  
 ====== 常见问题 ====== ====== 常见问题 ======