apicloud apicloud

注册
查看: 2987|回复: 9

[模块教程] UIEaseChat(即时聊天)模块试用分享

管理员

UID:253705

主题:
53
帖子:
309
云币:
687

[模块教程] UIEaseChat(即时聊天)模块试用分享

2987 9 | 发表于 2018-12-4 21:37:11 |阅读模式 | |
本模块封装了环信即时通讯云的开放SDK。基于官方发布的 easeChat 模块,在注册登录类接口基础上,扩展添加了 UI 类接口,适用于对 UI 设计要求不高的项目。可直接调用相关接口弹出聊天对话页面,真正实现了敏捷开发。

模块文档地址链接

调用模块前的步棸:
1. 注册环信账号,在环信管理后台并创建应用,获取环信key。详见文档:http://docs.easemob.com/start/000quickstart/10register
2. 配置环信key到APICloud项目的config.xml文件。注意Android iOS的配置方法不同。

配置方法如下:

  • 名称:UIEaseChat
  • 参数:appKey、ios_apnsCertName
  • 配置示例:
  1. <feature name="UIEaseChat">
  2.     <param name="appKey" value="11541702211*****" />
  3.     <param name="ios_apnsCertName" value="81qz3dBYB5q2n****" />
  4.     <param name="enableDnsConfig" value="true" />
  5.     <param name="chatPort" value= ""/>
  6.     <param name="chatServer" value="" />
  7.     <param name="restServer" value="" />
  8.     <param name="dnsURL" value="" />
  9.   </feature>
复制代码

Android平台配置方法如下:

<meta-data      name="EASEMOB_APPKEY"      value="1176170302*******" />

3.  添加UIEaseChat模块,编译自定义loader。


需要了解的知识:

自己的APP的用户体系和环信平台及UIEaseChat模块的关系。详见文档:http://docs.easemob.com/start/000quickstart/20usersandfriends

建议没接触过即时聊天架构的朋友多读几遍,不是很理解的话,隔几天再读。

通过阅读上面的文档我们了解到,创建环信账号应放到服务器端处理。


模块方法简介:

1. 登录接口。登录环信。

  1. var UIEaseChat = api.require('UIEaseChat');
  2.         UIEaseChat.login({
  3.             username: usernameVal,   //username是第三方用户体系中的primary key。需要在AppKey的范围内唯一。
  4.             password: passwordVal,   //hash后的密码
  5.             autoLogin: true
  6.         }, function(ret, err) {
  7.             if (ret.status) {
  8.                 api.alert({
  9.                     msg: '登录成功'
  10.                 });
  11.             } else {
  12.                 api.alert({
  13.                     msg: JSON.stringify(err)
  14.                 });
  15.             }
  16.         });
复制代码

2.  发起聊天接口

  1. var UIEaseChat = api.require('UIEaseChat');
  2.         UIEaseChat.chat({
  3.             conversationId: to,     //会话对方的用户名. 如果是群聊, 则是群组的id
  4.             chatType: 'chat',         //会话类型:chat:单聊会话; groupChat:群聊会话; chatRoom:聊天室会话
  5.             location: {
  6.                 size: 12,
  7.                 color: '#fff'
  8.             },
  9.             callishidden: false,
  10.             text: {
  11.                 size: 15,
  12.                 color: '#000'
  13.             },
  14.             avatar: {
  15.                 size: 40,
  16.                 corner: 20
  17.             },
  18.             navigationBar: {
  19.                 title: 'APICloud',
  20.                 titleColor: '#fff',
  21.                 bgColor: '#4169E1',
  22.                 backColor: '#fff',
  23.                 statusBarAppearance: true,
  24.                 backImg: 'widget://image/back.png'
  25.             }
  26.         });
复制代码

3. 监听类接口。监听到对应事件后,做相应的处理。下面列举三个,模块文档上还有其他事件的监听。

  • addConnectionListener(callback(ret))  连接服务器的状态变化事件的监听
  • addAccountListener(callback(ret))  账号异常事件的监听
  • addCallEventListener({params},callback(ret)) 设置音视频通话的监听

addCallEventListener音视频监听接口需要注意:

name:


  • 类型:字符串
  • 描述:监听事件名字
  • 取值范围:
    • callDidReceive:收到来电 (android不支持,android会在收到来电后自动弹出通话界面,所以不需要添加此监听)
    • didRecvInvite:被邀请加入会议(群聊)

iOS需添加来电监听,监听到来电事件时,调用chatInvite()接口打开音视频通话页面。


示例:

  1.   var UIEaseChat = api.require('UIEaseChat');
  2.         UIEaseChat.addCallEventListener({
  3.             name: 'callDidReceive'
  4.         }, function(ret, err) {
  5.             if (ret) {
  6.                 console.log(JSON.stringify(ret));
  7.                
  8.                 UIEaseChat.chatInvite({
  9.                     chatType: 'video',
  10.                     username: usernameVal
  11.                 }, function(ret) {
  12.                     if (!ret.status) {
  13.                         api.alert('用户拒绝');
  14.                     }
  15.                 });
  16.             }
  17.         });
复制代码


测试时用两个手机,登录不同的账号,即可互发消息。

模块效果截图:









本帖子中包含更多资源    您需要 登录 才可以下载或查看,没有帐号?立即注册

驾校小白

UID:679905

主题:
11
帖子:
42
云币:
28
发表于 2019-1-9 17:55:21 |
没有阅后即焚功能吗?

驾校小白

UID:712966

主题:
13
帖子:
29
云币:
6
发表于 2019-1-10 15:12:47 |
有源码吗?直接可以用的

主题:
10
帖子:
57
云币:
79
发表于 2019-4-3 15:56:59 |
安卓点击拍照重启了,是怎么回事或者怎么配置呢

驾校小白

UID:764689

主题:
5
帖子:
42
云币:
35
发表于 2019-4-11 14:42:47 |

有源码吗?

主题:
0
帖子:
1
云币:
53
发表于 2019-4-24 09:41:21 |
chat打开聊天界面,怎么设置扩展属性

实习司机

UID:469630

主题:
26
帖子:
92
云币:
136
发表于 2019-5-7 12:51:11 |


有源码吗?

驾校小白

UID:803446

主题:
2
帖子:
3
云币:
6
发表于 2019-7-12 13:34:27 |
这个模块怎么引入注册和登陆呢?是需要自己写吗?

驾校小白

UID:504781

主题:
11
帖子:
33
云币:
74
发表于 2020-8-19 09:23:27 |
UIEaseChat 能否分享下源码

驾校小白

UID:887018

主题:
1
帖子:
9
云币:
8
发表于 2020-8-30 23:25:34 |
同求 同求 同求 同求
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表