APICloud框架——融云+UIChatTools实现即时通讯聊天
今天完成了公司app的聊天界面的收发消息功能,结合融云2和UIChatTools模块实现,只是实现了基本功能,好多细节还没有实现,废话不多说,上代码
输入框页面(win)
先引入所需模块
// 融云模块
var rong = api.require('rongCloud2');
//聊天界面模块
var UIChatTools = api.require('UIChatTools');
初始化聊天输入框UIChatTools模块
// 聊天界面
function chatTools() {
UIChatTools.open({
chatBox: {
placeholder: '聊天内容',
autoFocuse: true,
maxRows: 6
},
styles: {
bgColor: '#D1D1D1',
margin: 10,
},
tools: {
h: 35,
iconSize: 30,
recorder: {
normal: 'fs://UIChatTolls/recorder.png',
selected: 'fs://UIChatTolls/recorder1.png'
},
image: {
normal: 'fs://UIChatTolls/image.png',
selected: 'fs://UIChatTolls/image1.png'
},
video: {
normal: 'fs://UIChatTolls/video.png',
selected: 'fs://UIChatTolls/video1.png'
},
face: {
normal: 'fs://UIChatTolls/face2.png',
selected: 'fs://UIChatTolls/face1.png'
},
append: {
normal: 'fs://UIChatTolls/append.png',
selected: 'fs://UIChatTolls/append1.png'
}
},
// 表情
// emotions:['widget://image/chatPage/emoticons/basic','widget://image/chatPage/emoticons/append1','widget://image/chatPage/emoticons/append2']
}, function(ret) {
if (ret) {
if (ret.eventType === 'send') {
// 发送消息
sendMsg(ret.msg);
}
}
});
// 附加按钮
UIChatTools.setAppendButton({
styles: {
row: 2,
column: 4,
iconSize: 50,
titleSize: 13,
titleColor: '#f00'
},
buttons: [
{
normal: 'widget://image/chatPage/album2.png',
highlight: 'widget://image/chatPage/album2.png',
title: '电话'
},{
normal: 'widget://image/chatPage/album2.png',
highlight: 'widget://image/chatPage/album2.png',
title: '收藏'
},{
normal: 'widget://image/chatPage/album2.png',
highlight: 'widget://image/chatPage/album2.png',
title: '发红包'
}
]
}, function(ret) {
api.alert({msg:'点击了第'+ret.index+'个按钮'});
});
// 监听功能按钮
UIChatTools.toolsListener(function(ret) {
if (ret.eventType == 'video') {
api.alert({
title: 'title',
msg: 'video',
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
}
});
// 接入融云
rongyun();
}
接入融云
// 接入融云
function rongyun () {
rong.init(function(ret, err) {
if (ret.status == 'error')
api.toast({ msg: err.code });
});
// 监听接收消息
receiveMsg();
rong.connect(
{
// 用户1
// token: '用户1token'
// 用户2
token: '用户2token'
},function(ret, err) {
if (ret.status == 'success') api.toast({ msg: ret.result.userId });
});
}
监听接收消息
// 监听接收消息
function receiveMsg() {
rong.setOnReceiveMessageListener(function(ret, err) {
// 由于聊天框界面和聊天内容不是一个页面所以要使用事件监听的方式通知聊天内容页面,传递参数
api.sendEvent({
name: 'receiveMsg',
extra: {
msg: ret.result.message.content.text
}
});
})
}
发送消息
function sendMsg(msg) {
var sendMsg;
rong.sendTextMessage({
conversationType: 'PRIVATE',
targetId: 'testUser1',
text: msg,
extra: ''
}, function(ret, err) {
if (ret.status == 'prepare') {
// 获取发送的消息内容
sendMsg = ret.result.message.content.text;
}
else if (ret.status == 'success') {
// 广播发送消息事件
api.sendEvent({
name: 'sendMsg',
extra: {
msg: sendMsg
}
});
}
else if (ret.status == 'error') {
api.alert({
title: 'title',
msg: err.code,
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
}
});
}
聊天内容页面(Frame)
监听发送消息
api.addEventListener({
name: 'sendMsg'
}, function(ret, err) {
// 发送消息后, 添加消息内容到页面
$api.append($api.dom('.main'),'<div class="oneself clearfix"><img class="fr" src="../../image/tx_2.jpg"><p class="fr"> ' + ret.value.msg + ' </p></div>');
});
监听页面接收消息
api.addEventListener({
name: 'receiveMsg'
}, function(ret, err) {
// 收到消息后, 添加消息内容到页面
$api.append($api.dom('.main'),'<div class="other clearfix"><img class="fl" src="../../image/tx_2.jpg"><p class="fl">' + ret.value.msg + '</p></div>');
});
基本功能已经实现,效果如图
aaarticlea/gif;base64,R0lGODlhggF0AncAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQADAAAACwAAAAAggF0AoYBAQEKCgoLCxgUFBQZGRkYGCQhISErKysoKDQsLDg1NTUzMz86OT1CQkJCQ01JSUlLTFdTU1NbW1thYmxpaWl0dHR5eXkPufQTuvQavPQuve4ivvUxve07vuwmwPUrwfUzw/U4xfZ/g5NBv+tHwOpAx/ZEyPZOzPdTzPdZzvdZzvhuxeNk0fhr1Ph2xuF7xuBz1vh82PmAgICMjIyBhZSEiJaGiZiJjZqNkJ6SkpKQk5+Yl5qdnZ2SlaGVmKSZm6abnqieoaqjo6OipK2qqqqlp7CmqLGqrLOusLevsbiys7eytLq2uL25ur68vcGDx9+GyN+VytucytqD2vmN3fmR3/qU4Pqb4fqmzNmuzdeqzNi+wMO1zda5ztWm5Pqr5vuv6Pu06fu97PzCwsXFxsjHyMnLzM3Ez9POztDH0NPP0NDQ0NDW1tjc3NzC7fzI7/3L8PzT8v3a9P3j4+Pq6uvj9v3l+P7r+f729vb0+/7+/v4AAAAAAAAAAAAAAAAAAAAH/4AMgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tegO9rb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz4Hj29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cP/jyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeT/kkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWWxkd9uar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zx/8UYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffcdM+2xt1456333nz37fffgAcu+OCEF2744YgnrvjijDfu+OOQRy755JRXbvnlmGeu+eacd+7556CHLvropJdu+umop6766qy37vrrsMcu++y012777binPoeGdOSuOB56BC/88MQXb/zxyCev/PLMN+/889BHL/301FdvPfVz+G749dx37/334Icv/v/45Duf/eBRuLDC+uy37/778Mcvv/svSEE4HeXnr//+/Pfv//96EBwWNHCBAhrwgAhMoAIXyEAGckALggOgBCdIwQpaMH/n8xsWGsjBDnqwg1kI3AVHSMISmtCEvfsbAT/IwhZ2kAMiPKEMZ0jDGnYPD3+Lggt3yMME2u9vNgyiEIdIxODh0G8u6KESefgEwBXxiVCM4gSP2LcVLPGKLHyBE6XIxS560XtU5JsVsUjGBmoRiF9MoxrXqLww7m2MZYwjAs/oNzba8Y5rdKPe4MhCDPiRgxhIYAYO+IFAepCOfcOjIhcJRT3mjY8fREEePFBAKsQggR9wgyELCAM9oKD/gBiogx4G2UFE8q15vWOkKlfpP0fiDZIL/MAdWlDAGOQBlF/QgxUQ2AI91IGSBcxAHvKwgQuYQA+XPOQWjbcGIlTADHqYAQD00AQKsPKa2PyeK+8G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" alt="" />
欢迎访问我的博客www.yuanjingzhuang.com
APICloud框架——融云+UIChatTools实现即时通讯聊天的更多相关文章
- Openfire XMPP Smack RTC IM 即时通讯 聊天 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 黑科技!仅需 3 行代码,就能将 Gitter 集成到个人网站中,实现一个 IM 即时通讯聊天室功能?
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- java Activiti6 工作流引擎 websocket 即时聊天 SSM源码 支持手机即时通讯聊天
即时通讯:支持好友,群组,发图片.文件,消息声音提醒,离线消息,保留聊天记录 (即时聊天功能支持手机端,详情下面有截图) 工作流模块---------------------------------- ...
- java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码
A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单; 技 ...
- xmpp实现的即时通讯聊天(一)
参考网址:http://www.jianshu.com/p/b401ad6ba1a7 http://www.jianshu.com/p/4edbae55a07f 一.mysql和openfire环境的 ...
- IM 融云 之 列表中显示聊天用户名称
现在发现,聊天列表中,用户名称没有显示出来.
- C# SignalR 即时通讯 聊天室
一.SignalR简介 SignalR:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据.实现实时服务器与客户端通信.是一个开源.NET 库生成需要实时用 ...
- xmpp实现的即时通讯聊天(二)
参考网址:http://www.jianshu.com/p/8894a5a71b70 借图描述原理: 三.注册.登陆.聊天功能的实现 故事板如下: 四个类如下: 不喜多言,直接上Demo: Login ...
- .Net core 3.0 SignalR+Vue 实现简单的即时通讯/聊天IM (无jq依赖)
.Net core 中的SignalR JavaScript客户端已经不需要依赖Jquery了 一.服务端 1.nuget安装 Microsoft.AspNetCore.SignalR 2.在star ...
随机推荐
- 编译自己的jdk(使用openJDK源码编译jdk )
找到openjdk网站(http://hg.openjdk.java.net/) 选择需要编译的版本,浏览readme文件,有获取源码及编译步骤 CentOS-7-x86_64-DVD-1804.is ...
- java中的成员变量、类变量,成员方法、类方法 属性和方法区别
成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用. 类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有 ...
- spring data jpa sql
CREATE TABLE cst_customer ( cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)', cust_name ...
- 树莓派GPIO口驱动编写
一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { ...
- 【Flutter学习】基本组件之上下刷新列表(一)
一,概述 RefreshIndicator是Flutter基于Material设计语言内置的控件,集合了下拉手势.加载指示器和刷新操作一体,可玩性比FutureBuilder差了一大截,不过大家也用过 ...
- vue中引入路由,如果你懒得写那么
可以npm i vue-router --save,项目中自动给你写好,vuex也可以
- strcpy函数学习
strcpy的功能如下: 原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #includ ...
- Django 同步数据库的时候app中的models的表没有成功创建
出现 no changes detected python3 manage.py makemigrations --empty blog # blog就是你的app名字,此处要写成自己的app名字 ...
- python3中浮点数相减问题(大部分时候只需要关注整数的二进制形式就行了)
首先直接上判断方法:一切判断直接将整数部分装化成二进制,如果位数相等则相减后的值是等于的,如果不相等,相减大的结果一定不等于你要比较的结果. 如66.6-60.6==6.0的情况,66.6的二进制:1 ...
- Python可以用于客户端Web开发吗?
N00b在Python,但我有大量的PHP经验,并希望扩展我的技能. 我知道Python在服务器端执行方面很出色,只是想知道客户端. 解决方案 你看过skulpt吗? http://www.skulp ...