更新记录
2.15.1(2024-05-10) 下载此版本
修复部分类型转换问题。
2.15.0(2024-04-30) 下载此版本
详情:https://doc-zh.zego.im/article/15340
2.14.1(2024-03-16) 下载此版本
修复原生插件层已知问题;
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | 适用版本区间:11 - 15 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
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原生插件使用教程