更新记录
2.18.2(2024-11-12) 下载此版本
对齐 ZIM 官网最新版本,详见:https://doc-zh.zego.im/article/15340
2.15.1(2024-05-07) 下载此版本
补充部分缺失的接口定义。
2.15.0(2024-04-29) 下载此版本
详情:https://doc-zh.zego.im/article/15340
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
app-vue | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
ZegoZIMUniAppSDK
ZEGO 即时通讯(ZEGO Instant Messaging,ZIM)是一款实时的通信互动产品,为开发者提供全平台互动、海量并发、超低延时、消息必达的通信服务,助力打造大型直播、语聊房、客服系统等场景。
ZEGO 提供 ZIM + RTC 服务联动的场景解决方案,公开语聊房、秀场直播等业务场景搭建的示例源码,帮助开发者能在极短的时间内搭建完美的业务场景。
了解更多解决方案:https://www.zego.im
使用方法
注意事项
1、本插件是 uniapp 原生插件,使用前需学习 uniapp 原生插件使用方法,官方教程 uni原生插件使用教程
申请 ZEGO AppID
登录 ZEGO 官网 注册账号,根据自身实际业务需求选择场景,获取 AppID 与 Token,用于初始化 SDK。
创建uniapp项目
使用uniapp官方IDE HBuilder,创建uni-app类型的项目
集成「ZegoZIMUniAppSDK」uniapp SDK
基础使用
初始化引擎
import ZIM from '@/components/zego-ZIMUniPlugin-JS/lib/ZIM';
// 使用从 ZEGO 控制台申请到的 appID 用于初始化
var zim = ZIM.create(appID);
监听回调事件
在客户端登录前,开发者可以通过调用 on
接口,自定义 ZIM 中的事件回调,接收到 SDK 异常、消息通知回调等的通知。
// 注册监听“运行时错误信息”的回调
zim.on('error', function (zim, errorInfo) {
console.log('error', errorInfo.code, errorInfo.message);
});
// 注册监听“网络连接状态变更”的回调
zim.on('connectionStateChanged', function (zim, { state, event, extendedData }) {
console.log('connectionStateChanged', state, event, extendedData);
});
// 注册监听“收到单聊消息”的回调
zim.on('receivePeerMessage', function (zim, { messageList, fromConversationID }) {
console.log('receivePeerMessage', messageList, fromConversationID);
});
// 注册监听“令牌即将过期”的回调
zim.on('tokenWillExpire', function (zim, { second }) {
console.log('tokenWillExpire', second);
// 可以在这里调用 renewToken 接口来更新 token
// 新 token 生成可以参考上文
zim.renewToken(token)
.then(function({ token }){
// 更新成功
})
.catch(function(err){
// 更新失败
})
});
登录
// 登录时,需要开发者 按照 "使用 Token 鉴权" 文档生成 token 即可
// userID 和 userName,最大 32 字节的字符串。仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '/', '\'。
var userInfo = { userID: 'xxxx', userName: 'xxxx' };
var token = '';
zim.login(userInfo, token)
.then(function () {
// 登录成功
})
.catch(function (err) {
// 登录失败
});
发送消息
客户端 A 可以调用 sendPeerMessage
接口,传入客户端 B 的 userID、消息内容等信息,即可发送一条消息到 B 的客户端。
var toUserID = 'xxxx1';
var config = {
priority: 1 // 消息优先级,取值为 低:1 默认,中:2,高:3
};
// 发送单聊 `Text` 信息
var messageTextObj = { type: 1, message: '文本消息内容' };
zim.sendPeerMessage(messageTextObj, toUserID, config)
.then(function ({ message }) {
// 发送成功
})
.catch(function (err) {
// 发送失败
});
接收消息
客户端 B 登录 ZIM 后,将会收到在 on 回调中设置的 receivePeerMessage
监听接口,收到客户端 A 发送过来的消息。
// 注册监听“收到单聊消息”的回调
zim.on('receivePeerMessage', function (zim, { messageList, fromConversationID }) {
console.log('receivePeerMessage', messageList, fromConversationID);
});
退出登录
zim.logout();
销毁 ZIM 实例
zim.destroy();
运行
本插件是 uniapp 原生插件,需要使用 uniapp 云打包制作自定义调试基座 ,才能保证正常跑通。 具体可参考 uniapp 官方教程 uni原生插件使用教程